C++中的函数原型为extern "C" __declspec(dllexport) int UnGateCode(char *in, char *out)
{//这里使用了in[i]取值 对out[i]进行了赋值
}
C#中如果通过DllImport引用这个方法,参数应该如何写呢?尝试下下面的写法不对
[DllImport("Mir3Base64.dll")]
public static extern int UnGateCode(ref string inchar,[MarshalAs( UnmanagedType.LPStr )] StringBuilder outchar);谁有更好的办法。,谢谢!
{//这里使用了in[i]取值 对out[i]进行了赋值
}
C#中如果通过DllImport引用这个方法,参数应该如何写呢?尝试下下面的写法不对
[DllImport("Mir3Base64.dll")]
public static extern int UnGateCode(ref string inchar,[MarshalAs( UnmanagedType.LPStr )] StringBuilder outchar);谁有更好的办法。,谢谢!
解决方案 »
- 代码翻译,轻松赚100分.C++转c#代码.不到20行.
- C#开发一个串口通讯的例子,其中有关于通讯协议方面的数据转换方面遇到了问题,请高手给予解决!!!!!!!!!!!
- c#做聊天工具,只能在局域网内发送数据
- 出大问题了,麻烦斑竹不要删了这帖,过几天再删
- C#新人求助for循环的用法
- 怎么封装c++头文件,lib文件?
- 多线程下 dataset 的界面死锁问题
- 读写固定内存的机器码(是机器码不是值)一般用哪个API或类?
- 讨论sql server中nvarchar和varchar各有什么优缺点
- MVVM 清除绑定
- 弱弱的问题.
- 关于C1.Win.C1FlexGrid.C1FlexGrid 控件显示的问题
[DllImport("Mir3Base64.dll")]
public static extern int UnGateCode(byte[] inchar,byte[] outchar);至于如何解析byte[]到字符串,自己调用Encoding类吧。
去掉ref试试
public static extern int UnGateCode(string inchar, StringBuilder outchar);// 调用
string inchar = "xxxxxxxx";
StringBuilder outchar = new StringBuilder(1024); //自己估摸出来的字符串有多长,确保够用
UnGateCode(inchar, outchar);