平台调用#define 指令
Platform invoke #define directive
我正在尝试了解平台调用。所以,我理解了很多概念,但我如何在 C# 中调用 #define
指令。
示例:
在 C++ 方面我有这个:
#define dont_care_how_you_invoke_me (ptr)
我试过这个:
[DllImport("mydll.dll")]
static extern void dont_care_how_you_invoke_me(IntPtr ptr);
这没有用。我在 google 上搜索了一段时间,但找不到任何东西,所以我什至不确定这是否可行。
提前致谢
C# 中的 PInvoke 导入方法对应于 DLL 中的实际 exported 函数,而不是函数的 C/C++ 语法表示(这就是为什么要使用 name-mangling在C++中处理成员函数时)
不要使用 C/C++ 头文件作为函数的参考,而是使用工具查看从 DLL 导出的函数并直接使用这些名称。
Dependency Walker 是一个很好的工具:http://www.dependencywalker.com/
我正在尝试了解平台调用。所以,我理解了很多概念,但我如何在 C# 中调用 #define
指令。
示例:
在 C++ 方面我有这个:
#define dont_care_how_you_invoke_me (ptr)
我试过这个:
[DllImport("mydll.dll")]
static extern void dont_care_how_you_invoke_me(IntPtr ptr);
这没有用。我在 google 上搜索了一段时间,但找不到任何东西,所以我什至不确定这是否可行。
提前致谢
C# 中的 PInvoke 导入方法对应于 DLL 中的实际 exported 函数,而不是函数的 C/C++ 语法表示(这就是为什么要使用 name-mangling在C++中处理成员函数时)
不要使用 C/C++ 头文件作为函数的参考,而是使用工具查看从 DLL 导出的函数并直接使用这些名称。
Dependency Walker 是一个很好的工具:http://www.dependencywalker.com/