我有一些真正的困难,将一个非常古老的Visual Studio 97 C++项目移植到Visual Studio 2010中。让我首先给出一些背景,到这个新的LNK1224错误,因为它们可能是相关的,但我不确定。奇怪的链接错误 - LNK1224:无效的图像库
在此之前我的新的错误,我收到此错误:
error LNK2005: "void __cdecl operator delete(void *)" ([email protected]@Z) already defined in LIBCMT.lib(delete.obj) nafxcw.lib(afxmem.obj)
通过一些挖我发现这个错误的原因是因为无论是MFC和CRT库包含“新”和“删除定义“所以他们碰撞。微软在http://support.microsoft.com/kb/q148652/中提供了2种解决方案。其中之一是确保在你的所有文件中,你总是首先包含MFC头文件(afx stuff)。那么这个项目中大约有100个文件,我只是厌倦了试图找到包含错误顺序资源的文件。所以我采用了另一种基本上迫使图书馆以特定顺序加载的解决方案。基本上你必须告诉编译器忽略一个特定的库,以便你可以按照你选择的顺序显式地加载它。在我的情况下,它是nafxcw.lib。
因此,在项目属性 - >链接器 - >输入,我明确忽略nafxcw.lib,然后明确地将它包括在列表的前面。
所以这样做之后,我LNK2005错误就走开了。但它们被替换为一个链接错误。
error LNK1224: invalid image base 0x287600000
我不知道我是否正确固定我以前的链接错误,这个新链接错误,其实是我不得不面对接下来的事情,或者我只是创建了基本遏制了更关键的链接错误链接过程之前,它达到我原来的LNK2005错误。无论哪种情况,我都无法找到有关此错误的很多信息。微软并没有在这个环节上说太多关于它http://msdn.microsoft.com/en-us/library/3ya3f8wz%28v=vs.80%29.aspx
You specified an invalid base address for the image. Base addresses must be 64KB aligned (the last four hex digits must be zero) and image base must fit within a 32-bit signed or unsigned value.
这是不是所有对我很有帮助,而且似乎没有其他的线索,在那里这个问题的来源。我不知道下一步是什么。