c# - 平台调用 #define 指令

标签 c# c++ c pinvoke

我正在尝试了解平台调用。所以,我理解了很多概念,但我如何调用 #define C# 中的指令。

示例:

在 C++ 方面我有这个:

#define dont_care_how_you_invoke_me (ptr)   

我已经尝试过这个:

[DllImport("mydll.dll")]
static extern void dont_care_how_you_invoke_me(IntPtr ptr);

这不起作用。我在谷歌上搜索了一段时间,但找不到任何东西,所以我什至不确定这是否可能。

提前致谢

最佳答案

C# 中的 PInvoke 导入方法对应于 DLL 中的实际导出函数,而不是函数的 C/C++ 语法表示(这就是为什么在处理 C++ 中的成员函数时使用名称修饰) )

不要使用 C/C++ 头文件作为函数的引用,而是使用工具查看从 DLL 导出哪些函数并直接使用这些名称。

Dependency Walker 是一个很好的工具:http://www.dependencywalker.com/

关于c# - 平台调用 #define 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34826433/

相关文章:

C# EntryPointNotFoundException 无法在 DLL 'SetDllDirectory' 中找到名为 'kernel32.dll' 的入口点

c++ - opencv计算矩阵秩

c++ - 函数指针类型如何不安全

c - Visual Studio 2010 win 32位项目导入DLL

保存宏定义的C字符串

c# - 调试 Windows 服务

c# - 单个应用程序中的 SOAP 服务和 JSF/Icefaces

c# - 使用 C# 仅获取 JSON 的一部分

c++ - 操作数组

c - 为什么信号处理程序仅适用于我的第一个 ctrl + c?