如何在 Visual C 中的 MFC 应用程序中包含 ODBC 3.0 版库2010年?
- 我创建了自己的 ODBC 包装类,它处理来自 C++ Win32 应用程序的 SQL。
- 我已将此类复制并添加(如现有)到我的 MFC 应用程序中。
现在,我遇到了与未解析的外部符号(在 Win32 完美运行的应用程序中不存在)相关的可怕链接问题,例如:“
错误 56
错误 LNK2019:函数中引用了无法解析的外部符号 _SQLSetStmtAttr@16 “public: int __thiscall Cosql::ODBCconnect(char *)” (?ODBCconnect@Cosql@@QAEHPAD@Z)
C:\Documents and Settings.........\Cosql.obj ApplicationName “
我怎样才能正确地包含来自
的“sqlext.h”(和“sql.h”) 我的 MFC 应用程序中的 C:\Program Files\Microsoft SDKs\Windows\v7.0A 或更重要的是:如何解析这些外部符号?
我是唯一一个尝试从 MFC 应用程序进行 ODBC 连接并遇到此问题的人吗??? :O
我只知道“SQLSetStmtAttr”函数是仅为 ODBCVER 3.0 及更高版本定义的。出色地 !但是如何在我的 MFC 应用程序中设置 ODBCVER。 ???我不知道。
编辑:我发现 ODBCVER 的定义是:0x0380(所以它是版本 3.8), 所有函数均由以下内容正确定义: sql.h 和 sqlext.h ,
编辑 II:当我使用一些全局变量将所有这些方法(对象)转换为纯函数时,链接错误仍然存在!
提前致谢。
- I created my own ODBC wrapper class which handles SQL from C++ Win32 application.
- I have copied and Added (as existing) this class to my MFC application.
Now I have terrible linking problems with unresolved external symbols (which were NOT present in the Win32 perfectly working app), such as this: "
Error 56
error LNK2019: unresolved external symbol _SQLSetStmtAttr@16 referenced in function
"public: int __thiscall Cosql::ODBCconnect(char *)" (?ODBCconnect@Cosql@@QAEHPAD@Z)
C:\Documents and Settings.........\Cosql.obj ApplicationName
"
How can I PROPERLY include "sqlext.h" (and "sql.h") from
C:\Program Files\Microsoft SDKs\Windows\v7.0A in my MFC application or MORE importantly: How to resolve those external symbols?
Am I the only one trying to ODBC-connect from a MFC app and having this trouble ??? :O
I Just know that "SQLSetStmtAttr" function is there defined only for ODBCVER 3.0 and higher. Well ! But HOW do I set ODBCVER in my MFC app. ??? I have no idea.
EDIT: I figured out that ODBCVER is defined: 0x0380 (so it is ver. 3.8),
all functions are defined correctly by those includes: sql.h and sqlext.h ,
EDIT II: Linking ERROR persists when I convert all those methods (object) into pure functions using some global variables!
Thanx in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已解决。
解决方案:我从 ODBC 类创建了一个 DLL,然后在我的项目中使用它。
现在它是独立编译的,因此不再限制彼此不兼容的环境和编译器设置!
Solved.
Solution: I created a DLL from my ODBC class and then used it in my project.
Now it is compiled independently so it does not restrict each other's INCOMPATIBLE environment and compiler settings anymore!