C# 调用 C++ DLL,DllImport


我用 C++ 编写了一个 DLL,但是即将把 DLL 提供给 C# 调用,因为 C++ 非托管代码的缘故,导致我不知道如何编写 C# 的导入接口,就是类似于 DllImport 那样,具体地说就是我不知道如何用 DllImport,函数的参数是 char、char *、xonst char *、int、自定义的结构体等,那么应该如何导入

c# dll C++

没头像_不高兴 10 years, 2 months ago

一般在dll里面函数 用dllexport 类型对应就行,比如 int 对应Int32 char*对于String
BSTR --------- StringBuilder

LPCTSTR --------- StringBuilder

LPCWSTR --------- IntPtr

handle---------IntPtr

hwnd-----------IntPtr

char *----------string

int * -----------ref int

int &-----------ref int

void *----------IntPtr

结构体在C#里面重新定义。
C++ 中一般用 WINAPI,

__declspec(dllexport) int WINAPI fun(int x){return x;}
然后DllImport就行,P/Invoke很多例子的。

chiff answered 11 years, 8 months ago

Your Answer