我有一个来自供应商的 DLL,我需要从 C# 调用。我知道 C# 数据类与 C++ 数据类型不直接兼容。
所以,假设我有一个接收数据并返回“字符串”的函数。
(像这样)
string answer = CreateCode2(int, string1, uint32, string2, uint16);
我必须做什么才能使输入参数兼容,然后使结果字符串兼容?
请 - 我从来没有这样做过:不要给出“使用 P/Invoke”或“使用 Marshal”之类的答案,我需要一个带有示例的教程。
我看到的所有 P/Invoke 示例都来自 .NET Framework 1.1,而 Marshall(没有教程)完全让我感到困惑。
此外,我还看到了一些示例,这些示例告诉我何时创建 extern 函数以将所有数据类型替换为 void*。这使我的 IDE 要求我使用“不安全”。