c#调用c++dll问题

酱油小龟 2016-06-03 12:29:15
我c#调用c++的dll时,老是报类型不匹配错误,请各位大神帮我看看哪里写的不对。

c++中申明原型:
external "C" __declspec(dllexport) BOOL InitializeModule(LPCWSTR lpBuffer);

c#中的申明:
[DllImport("ItsnDLL1.dll")]
public static extern bool InitializeModule(string lpBuffer);

c#中调用:
bool Result = SnDll.InitializeModule("test.dll");



非常感谢!
...全文
150 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
crystal_lz 2016-06-03
  • 打赏
  • 举报
回复
你还是来个报错截图吧 就一个参数 没看出有什么问题 LPCWSTR -> Long Point Const Width String 用string类型 应该是不会有问题的 还有 调用约定 不知道有没有影响 external "C" 的修饰没用过 我一般都是 _stdcall 不过貌似 这两个都是一样的
小程序员 2016-06-03
  • 打赏
  • 举报
回复
[DllImport("ItsnDLL1.dll")] public static extern bool InitializeModule(Intptr lpBuffer); 试试
为轮子而生 2016-06-03
  • 打赏
  • 举报
回复
应该是没问题的,用StringBuilder试试
gw6328 2016-06-03
  • 打赏
  • 举报
回复
类型不对,c++那个是指针 可能对应long, char*这种吧。
xian_wwq 2016-06-03
  • 打赏
  • 举报
回复
DllImport的属性最好都显式说明下 有的时候使用默认值有问题 比如:

[DllImport("ItsnDLL1.dll", EntryPoint = "InitializeModule", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Stdcall)]
-小蕾- 2016-06-03
  • 打赏
  • 举报
回复
String

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧