这里是:VB第一;该项目是一个类库,除了在项目属性中打开“Register for COM interop”之外,所有设置都是默认的。
Public Class Class1
Public Sub New()
'do stuff
End Sub
Public Sub increment()
'do stuff
End Sub
End Class
这是C ++,它是一个控制台应用程序,启用了CLR支持:
#include <iostream>
#import "..\ClassLibrary1\bin\Debug\ClassLibrary1.tlb" raw_interfaces_only
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "hello world" << endl;
HRESULT hr = CoInitialize(NULL);
long lResult = 0;
Class1 c1; //compiler fails on this, doesn't know what Class1 is
c1.increment();
//wait for console key press then exit
char x;
cin >> x;
CoUninitialize();
return 0;
}
具体问题:
答案 0 :(得分:0)
对于任何人的未来参考,就像我写这个问题时一样困惑。我使用了COM路由(不是C ++ / CLI,因为它涉及更改现有项目的设置)。在这里更正代码:
Calling COMVisible VB.Net dll from C++ using CoCreateInstance