windows api p/invoke 调用失败

weixin_38054276 2017-03-24 08:55:47

用C++写了个DLL导出了个函数,然后由 C# p/invoke 调用,这个函数主要是调用DhcpCreateClientInfo 创建一个DHCP项:
该函数的参数都是LPTSTR,在C#中以string方式声明
代码大概如下:
DHCP_CLIENT_INFO info;
......
......
填充该结构体
最后:
return DhcpCreateClientInfo(server, &info);
然后就出现了个很奇怪的现象:同样的代码用C++调用函数正常运行;但是用C#P/INVOKE调用就一直返回 87 错误代码
在C#中启用本地代码调试,发现从C#中传入的值都是正确的;为了排除参数问题,取消了所有参数,在函数内用wchar* server 之类的声明变量,硬编码测试,但是结果还是 87 ;
很奇怪的是
DhcpDeleteClientInfo 函数调用都是正常的,但是DhcpCreateClientInfo叫是返回87;目前猜测是DHCP_CLIENT_INFO info 这个结构体填充的问题;同样的调用 DhcpCreateClientInfoVQ
还是一样的结果; 但是C++上调用都是正常;有没有什么解决办法
...全文
19 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复

474

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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