我们的一个应用程序是在C#/。NET 1.1/VS2003,需要保持原样:-(迁移从.NET 2.0到.NET 1.1 - 的DllImport不再起作用
我需要使用代码。另一个.NET 2.0中的C#程序集:由于技术上的限制(.NET 1.1是强制性的,因此不可能直接使用.NET 2.0),我将代码从.NET 2.0项目中解放出来,以适应.NET 1.1(不容易的,因为没有泛型,局部禁止等)。
我1.1代码现在编译,但在执行时失败,因为一个EntryPointNotFoundException由于P /调用到非托管DLL。
什么奇怪的是,我想首先确认在.NET 2.0我的变化,我没有任何问题导入DLL:
[DllImport(FreeImageLibrary, EntryPoint = "FreeImage_GetFileTypeFromHandle")]
public static extern FREE_IMAGE_FORMAT GetFileTypeFromHandle(ref FreeImageIO io, fi_handle handle, int size);
的声明是在这两个项目中的相同,当然DLL也是一样的。 DUMPBIN.EXE给出了签名:
[email protected]
我也试图声明该名字对应的入口点,但也不管用,以及拼命想改变CallingConvention
,CharSet
,ExactSpelling
.. 。 没门 !
这可能会之一:
从方式的改变.NET 1.1和2.0,但我没有找到任何东西,从错误中以这种方式去
之间
DllImport
作品在我的代码迁移到.NET 2.0到1.1,但我不明白这是怎么可能是这种情况下精确(我甚至追溯代码看到的大小参数,io
和handle
,他们是相同的在这两种情况下)...我无法想到的东西!
非常感谢您的专业知识!
我投票结束这个问题“不是一个真正的问题”。 – Lucero 2011-02-17 16:01:17