我正在开发一个带有 C 包装器的 C++ DLL,以便在不同的语言中使用。目前,我也在开发一个用 C# 编写的插件来调用我的 DLL。
我想要的是将一个字符串(文件路径)作为我的 DLL 的参数传递,以便在我的 DLL 中使用。 C#
当我在文件上保存_filename(因为我没有找到使用DLL断点调试的方法),我得到了类似于
谢谢您的帮助。
我想要的是将一个字符串(文件路径)作为我的 DLL 的参数传递,以便在我的 DLL 中使用。 C#
[DllImport(DllName, CallingConvention = DllCallingConvention)]
public static extern IntPtr AllocateHandle(string filename);
C包装器
LPVOID SAMPLEDLL_API CALLCONV_API AllocateHandle(char* filename);
C++类的构造函数
CustomData::CustomData(char* filename)
{
_filename = filename; // string _filename;
}
当我在文件上保存_filename(因为我没有找到使用DLL断点调试的方法),我得到了类似于
ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ0à×
的结果。我尝试了不同的解决方案将char*转换为字符串,但结果仍然相同。谢谢您的帮助。
[MarshalAs(UnmanagedType.LPStr)]
来修饰您的filename
。 - Evk