我的任务是将我们的应用程序从 VC++6 升级到 VC++ 2010。在花了一些时间之后,我设法让它编译成功。但是,链接失败:(
The linker error I'm getting is:
Error 33 error LNK2019: unresolved external symbol _SQLConfigDataSource@16 referenced in function "protected: void __thiscall CReportPropertyPage4::OnViewReport(void)" (?OnViewReport@CReportPropertyPage4@@IAEXXZ) <redacted>\ReportPropertyPages.obj
虽然我将是第一个承认我调试链接器错误的经验为零的人,但我在网上做了一些研究,发现我需要为链接器包含正确的 .lib 文件。
因此,我继续打开项目属性页面并进入链接器并在“输入”选项卡上的“附加依赖项”下添加对 .lib 的引用。
$(ProjectDir)\lib\odbccp32.lib (注意,我确实将 .lib 复制到上述文件夹中)。
但是,没有骰子。
odbcinst.h 是定义函数 SQLConfigDataSource 的文件(包括在内):
BOOL INSTAPI SQLConfigDataSource (HWND hwndParent,
WORD fRequest,
LPCSTR lpszDriver,
LPCSTR lpszAttributes);
以及我对它的相关调用:
CString strParameters;
strParameters.Format(
"DSN=<Redacted> ASCII\0"
"Description=<Redacted> ASCII\0"
"CharacterSet=ASCII\0"
"ColNameHeader=False\0"
"Format=TabDelimited\0"
"DEFAULTDIR=%s\0"
"EXTENSIONS=txt\0\0", strTempDir );
if( SQLConfigDataSource( NULL, ODBC_ADD_DSN, "Microsoft Text Driver (*.txt; *.csv)",
strParameters ) )