C#调用C++的方法
C#调用C++的方法
|
0准备 |
类前缀 #define ATL_NO_VTABLE __declspec(novtable) 函数前缀 #define STDMETHODIMP HRESULT STDMETHODCALLTYPE #define STDMETHODCALLTYPE __stdcall |
class ATL_NO_VTABLE CDwgOPFun : STDMETHODIMP myClass::myFunc(BSTR aaa, LONG* bbb) |
|
1添加 |
|
输入方法名,选择参数特性; in表示输入参数; out表示输出参数; retval表示返回值; in、out都可单独使用; retval不可单独使用,必须和out一起使用,out retval必须放在最后一个; out参数必须是指针类型,非指针类型不可以作为out参数; 返回值Hresult表示函数执行结果(是否成功),并不是真正的返回值; |
|
2实现 |
STDMETHOD(myFunc)(BSTR aaa, LONG* bbb); STDMETHODIMP myClass::myFunc(BSTR aaa, LONG* bbb) { // TODO: 在此添加实现代码 *bbb= 1; return S_OK;} |
函数添加后,就会在cpp文件和h文件中出现该函数; 在cpp文件中实现该函数即可; |
|
3引用 |
调用程序中添加引用 注意,要添加ocx文件,而不是dll文件; 注意,如果之前已经添加,需要重新添加,以更新; |
添加引用的顺序: 1. 删除之前的引用; 2. VS-生成-清理解决方案; 3. 添加引用,选择ocx文件; |
|
4调用 |
myLib.myClass myInstance= new myLib.myClass(); long returnValue= myClass.myFunc(p1,p2,p3); |
1首先用引用名.类名,实例化一个类; 2用类实例.函数名进行函数调用; 3输入所需参数; 4返回值为设置属性out retval的值; |

浙公网安备 33010602011771号