0

我的任务是将我们的应用程序从 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 ) )
4

0 回答 0