我有一个我需要重新审视的旧项目。它是在某些版本的Visual C ++(prolly 2005)中构建的,用于查看.sln文件。由于某些损坏(dubug point -1),sln文件不会转换为VS 2008解决方案。我在VS中导入了该文件夹作为一个新项目并尝试编译。
它为"lang/Typedefs.h/Assertions.h"
提供了编译错误。删除声明我没有声明Uint8 / 16/32/64的错误。所以我添加了typedef和其他宏(TOOLS_UNUSED_PARAMETERS(x) / TOOLS_FORBID_COPY())
。
正在解决这个问题,我得到了Gui / FileDlg.h和Gui / FolderDlg.h(调试点-2)的错误。
我没有在线或在我当前的VS安装中找到任何来自任何资源的头文件,所以我假设代码丢失了,我将不得不重做它。
即使这些也可能是早期程序员自定义实现的。当前MFC使用CFileDialog
,代码使用Gui::FileDlg
。
我暂时注释掉了代码,看看我能在哪里找到,因为gui不是应用程序的重要组成部分。后来我看到了与RegKeyOpenEx调用和输出流调用相对应的链接器错误(dubug point -3)。 Winreg.h不包括在内,但是windows.h是。
示例:
Error 2 error LNK2019: unresolved external symbol __imp__MessageBoxA@16
referenced in function "public: class std::basic_ostream<char,struct
std::char_traits<char> > * __thiscall FileManager::getOutputStream(class Interface
*,class LogPoint *)" (?getOutputStream@FileManager@@QAEPAV?$basic_ostream@DU?
$char_traits@D@std@@@std@@PAVInterface@@PAVLogPoint@@@Z) filemanager.obj
PCAPGenerator
我不是.Net程序员,所以请你在这里建议什么是正确的行动方案? 我应该关注哪些调试点。
答案 0 :(得分:1)
RegKeyOpenEx是Advapi32.dll
中定义的Winapi函数。将其链接到Visual C ++项目:
Properties->Configuration Properties->Configuration Type->Static Library (.lib)
,请转到Configuration Properties->Librarian->General->Additional Dependencies
并添加Advapi32.lib
。Dynamic Library (.dll)
),您将拥有Linker
部分而不是Librarian
。转到Input
小节,将Advapi32.lib
添加到Additional Dependencies
。对于剩下的链接器错误,请以相同的方式继续:转到该函数的MSDN文档,检查它所属的dll / lib,并让项目按上述方式将其链接。