2011-02-17 141 views
4

我们的一个应用程序是在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] 

我也试图声明该名字对应的入口点,但也不管用,以及拼命想改变CallingConventionCharSetExactSpelling .. 。 没门 !

这可能会之一:

  • 从方式的改变.NET 1.1和2.0,但我没有找到任何东西,从错误中以这种方式去

  • 之间DllImport作品在我的代码迁移到.NET 2.0到1.1,但我不明白这是怎么可能是这种情况下精确(我甚至追溯代码看到的大小参数,iohandle,他们是相同的在这两种情况下)

  • ...我无法想到的东西!

非常感谢您的专业知识!

+0

我投票结束这个问题“不是一个真正的问题”。 – Lucero 2011-02-17 16:01:17

回答

1

哦 - 我刚刚意识到我有一个DLL名称冲突引发了这个问题(.NET项目和非托管的DLL具有相同的名称)......哎呀!对不起,我的问题完全没有意义。无论如何感谢阅读!