罗伯特Giesecke库的非托管DLL导出在Windows XP下不起作用

时间:2013-12-31 00:25:55

标签: c# dll unmanaged

我有一个纯C#dll,我使用Unmanaged DLL Export / Robert Giesecke编译成功编译,可以在Windows 7上运行时从C ++应用程序调用。该DLL是为Win32(x86)编译的。然后在Windows XP机器上运行相同的程序和DLL,可执行程序无法调用导出的DLL函数。

这是导出函数的一个示例:

   [DllExport("SetTerminalHandle", CallingConvention = CallingConvention.Cdecl)]

       public static void SetTerminalHandle(int hTerminal, string strTerminalPath, string strAccountServer)
       {
           terminalHandle = hTerminal;
           terminalPath = strTerminalPath;
           accountServer = strAccountServer;
       }

任何想法。我知道要在Win 7 w / VS 2012 for C ++下创建一个可运行的Windows XP DLL或exe,您需要将编译器工具设置为Platform Set:Visual Studio 2012 - Windows XP(v110_xp) 您似乎无法使用C#编译器执行此操作。

任何想法?

由于

1 个答案:

答案 0 :(得分:0)

对于X#,你不需要这种东西,最重要的是你正在编译的.net框架..

您很可能是针对与Windows XP不兼容的.net版本编译了C#代码。

.NET 3.5将为您提供与XP SP2的兼容性。如果你想要与任何级别的XP兼容,你需要一直回到.NET 2.0。