我需要通过 p/invoke 传递一个字符串,它只是一个文件名,类似于“desc.xml”。我不在乎它是否会std::string
或char*
可能是其他东西(我可以转换为适当的类型)。我应该如何声明签名?
在 c# 方面,我期望这样的东西:
[DllImport("Native.dll"), SuppressUnmanagedCodeSecurity]
public static extern void Initialize(/*TODO: how to pass string?*/);
在 c++ 方面,我希望是这样的:
__declspec(dllexport) void Initialize(char* fileName);
或std::string
代替char*
__declspec(dllexport) void Initialize(std::string& fileName);
我希望它可以这样使用:
Initialize("desc.xml");
问题是我应该如何声明参数。