我正在尝试从'Enigma_ide.Dll‘中检索硬件id,正如文档所说,函数没有参数,如果函数成功,则返回值是指向以null结尾的ANSI字符串的指针。如果函数失败,则返回值为0。我正在尝试下面的代码:
这是c++中的定义
extern "C" __declspec( dllimport ) __stdcall PCHAR EP_RegHardwareID();我的c#代码
public class Enigma_IDE
{
[DllImport("enigma_ide.dll", CallingConvention = CallingConvention.StdCall)]
public static extern string EP_RegHardwareID();
}
string hwId = Enigme_IDE.EP_RegHardwareID();
Console.WriteLine(hwId);打印的字符串是空的,我哪里弄错了?
以下是指向文档的链接
https://enigmaprotector.com/en/help/manual/53e596732704f7ac068c6e74cfdf1ba3
发布于 2021-01-22 10:54:59
我已经解决了这个问题,如果有人需要的话,我会把解决方案贴出来。
上面提到的方法返回一个空字符串,因为EXE文件需要用Enigma保护,只有在保护文件之后,该方法才会返回值。
https://stackoverflow.com/questions/65757972
复制相似问题