【发布时间】:2014-01-08 19:40:23
【问题描述】:
我想从 kernel32.dll 中导入一些函数,但我想使用不同的名称。示例函数:
[DllImport("kernel32.dll")] private static extern bool ReadProcessMemoryProc64 (...);
private static bool BetterReadableAndWriteableName (...) {
ReadProcessMemoryProc64(...);
}
如果有其他方法,我实际上不想要包装函数。
【问题讨论】:
-
您可以这样做,但这可能是个坏主意。您的代码的下一位读者将如何知道这些函数是什么?
-
有有效案例。例如,许多 Win32 API 具有 LPVOID/LPARAM/等参数(例如 SendMessage),这些参数可以根据其他参数采用不同的数据类型。在这种情况下,通常需要创建不同的方法签名来支持不同的用例。在这种情况下,您必须使用 EntryPoint 来重命名函数(或者您可以在不同的类中声明它们以避免名称冲突,但这并不总是合适的)。
标签: c# function winapi alias extern