c# 调用 c++函数 问题

jxdong1013 jxdong1013 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
c++ 的DLL 文件中定义了一个 函数:
int RunService(char *msgType, char *version, char *in, size_t inLen, char *out, size_t *outLen);
参数说明:
msgType:输入参数
version:输入参数
in:输入参数
inLen:输入参数
out:是输出参数
outLen:是输出参数

我在 c# 如下定义:
[DllImport("XXX.dll")]
public static extern int RunService(string msgType, string version, string inp , UInt32 inLen, StringBuilder outp, out UInt32 outLen);
请问这样定义 可以吗?
我在测试这个函数时报如下错误:
对 PInvoke 函数“HISShell!HISShell.CallYBDll::RunService”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。

求帮助!
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
jxdong1013
C# 111,128 成员 642,536 内容