如何使用不同语言定义的DLL接口呢?
比如说DLL定一个了一个C++接口的方法:voidfunction(wchar_t*pszPage);在C#的程序里调用这个方法,可是C#根本不认wchar_t类型阿...
比如说
DLL定一个了一个C++接口的方法:
void function(wchar_t *pszPage);
在C#的程序里调用这个方法,可是C#根本不认wchar_t类型阿 展开
DLL定一个了一个C++接口的方法:
void function(wchar_t *pszPage);
在C#的程序里调用这个方法,可是C#根本不认wchar_t类型阿 展开
1个回答
展开全部
举个例子:你要调用user32.dll中的GetCursorPos(),在C中的原形是
BOOL GetCursorPos(LPPOINT lpPoint);
在C#中你可以这样定义
[StructLayout(LayoutKind.Sequential)]
public struct POINTAPI {//对应C中LPPOINT的定义
public int x;
public int y;
}
[DllImport("user32.dll", EntryPoint="GetCursorPos")]
public static extern bool GetCursorPos (ref POINTAPI lpPoint);//ref 就相当于指针
BOOL GetCursorPos(LPPOINT lpPoint);
在C#中你可以这样定义
[StructLayout(LayoutKind.Sequential)]
public struct POINTAPI {//对应C中LPPOINT的定义
public int x;
public int y;
}
[DllImport("user32.dll", EntryPoint="GetCursorPos")]
public static extern bool GetCursorPos (ref POINTAPI lpPoint);//ref 就相当于指针
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询