从C#函数传递C++COM dll中的字符串
Pass String in C++ COM dll from C# function
dll的函数接口;
我认为dll中的函数看起来像,数据类型为BSTR
CustomConvert(BSTR dataStr)
{........}
dll接口:
CustomConvert(IntPtr dataStr) //Returns strings
我需要传递的数据是这样的:
string strTemp = "pŒ®í§…Êtf°B²bßZÃQô"; // something like this
obj.CustomConvert(strTemp);
但我得到的异常"字符串"无法转换为"System.IntPtr";在网上搜索后,我发现了这样的东西。
obj.CustomConvert(System.Runtime.InteropServices.Marshal.StringToBSTR(strTemp));
但是System.Runtime.InteropServices.Marshal.StringToBSTR(strTemp)将strTemp转换为2035295等数字。但我需要在strTemp中传递实际值。
有什么帮助或建议吗?
要传递BSTR
,可以执行以下操作:
public static extern void CustomConvert([MarshalAs(UnmanagedType.BStr)] string dataStr);
然后在不做任何事情的情况下直接通过CCD_ 2。
请注意,在CustomConvert
中,您不能释放BSTR
,因为它由C#"拥有"。
相关文章:
- Visual c ++,使用字符串引用/指针调用 dll 函数
- 从DLL导出函数,LoadLibrary()需要用TEXT转换的字符串才能编译而不会出错
- 如何将 VB.Net 字符串作为字符*传递给C++dll?
- C# 和 C++ dll - 封送字符串
- 为什么在调用C#DLL时不需要提供字符串缓冲区
- 随机字符,从强制转换 Arduino 字符串到 Excel BSTR 通过 c++ DLL
- Java 调用 dll 字符串返回类型方法
- 如何在 VBA/Excel 中创建字符串数组并将其发送到C++ DLL,以便可以在 DLL 中循环访问它
- 将字符串向量从 C# 传递到C++ DLL
- 使用 DLL 在 c++ 和 C# 之间交换字符串
- 为什么 C# 封送字符串不适用于C++ DLL
- C++中具有"::"字符串名称的 DLL 导出调用
- 放置在外部 DLL 中的类中的字符串数据的内存损坏
- 从 dll 返回多个字符串
- 将字符串从 C# 发送到 dll 文件C++
- 从dll传递c字符串,穿过外部C
- 从库类函数导出 DLL 字符串
- 从 DLL 字符串表中获取字符串
- C# DLL 字符串 C++ 中的函数
- c++ Dll字符串函数崩溃