C# 函数别名

C# 函数别名,c#,function,winapi,alias,extern,C#,Function,Winapi,Alias,Extern,我想从kernel32.dll导入一些函数,但我想使用不同的名称。示例函数: [DllImport("kernel32.dll")] private static extern bool ReadProcessMemoryProc64 (...); private static bool BetterReadableAndWriteableName (...) { ReadProcessMemoryProc64(...); } 如果有其他方法的话,包装函数实际上是我不想要的。使用Dl

我想从kernel32.dll导入一些函数,但我想使用不同的名称。示例函数:

[DllImport("kernel32.dll")] private static extern bool ReadProcessMemoryProc64 (...);

private static bool BetterReadableAndWriteableName (...) {
    ReadProcessMemoryProc64(...);
}
如果有其他方法的话,包装函数实际上是我不想要的。

使用DllImportAttribute的属性

[DllImport("kernel32.dll", EntryPoint="ReadProcessMemoryProc64")]
private static extern bool BetterReadableAndWriteableName (...);

你可以这样做,但这可能是个坏主意。代码的下一个读者如何知道这些函数是什么?有一些有效的例子。例如,许多Win32 API具有LPVOID/LPARAM/etc参数(例如SendMessage),这些参数可以根据其他参数采用不同的数据类型。在这种情况下,通常需要创建不同的方法签名来支持不同的用例。在这种情况下,您必须使用EntryPoint重命名函数(或者您可以在不同的类中声明它们以避免名称冲突,但这并不总是合适的)。谢谢你们:)我尝试了许多解决方案,但这很简单-_-
[DllImport("kernel32.dll", EntryPoint = "ReadProcessMemoryProc64")] 
private static extern bool MyName(...);