- 浏览: 2037031 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (651)
- ACE (35)
- BAT (9)
- C/C++ (116)
- fast-cgi (14)
- COM (27)
- python (59)
- CGI (4)
- C# (2)
- VC (84)
- DataBase (29)
- Linux (96)
- P2P (6)
- PHP (15)
- Web (6)
- Memcached (7)
- IME输入法 (11)
- 设计模式 (2)
- 搜索引擎 (1)
- 个人情感 (4)
- 笔试/面试 (3)
- 一亩三分地 (33)
- 历史 (2)
- 地理 (1)
- 人物 (3)
- 经济 (0)
- 不仅仅是笑哦 (43)
- 小故事大道理 (2)
- http://www.bjdsmyysjk120.com/ (0)
- http://www.bjdsmyy120.com/ (0)
- 它山之石可以攻玉 (15)
- 大学生你关注些什么 (28)
- 数据恢复 (1)
最新评论
-
luokaichuang:
这个规范里还是没有让我明白当浏览器上传文件时,STDIN的消息 ...
FastCGI规范 -
effort_fan:
好文章!学习了,谢谢分享!
com技术简介 -
vcell:
有错误os.walk(strPath)返回的已经是全部的文件和 ...
通过python获取目录的大小 -
feifeigd:
feifeigd 写道注意:文章中的CPP示例第二行 #inc ...
ATL入门:利用ATL编写简单的COM组件 -
feifeigd:
注意:文章中的CPP示例第二行 #include " ...
ATL入门:利用ATL编写简单的COM组件
MS VC6 链接错误处理
在Windows XP下编译的软件,放到Windows 2000上使用时,跳出了"无法找到动态链接库MSVCRTD.dll"的提示,后来还是直接将MSVCRTD.dll从WinXP系统目录下copy过来使用来解决问题的。
不过在解决问题过程中,有其他意外收获,现在记下来,说不定以后可参考一二。
刚开始时,我将MFC DLL改为静态库链接,编译,出现如下结果:
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _realloc already defined in libcmt.lib(realloc.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _free already defined in libcmt.lib(free.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _malloc already defined in libcmt.lib(malloc.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _strchr already defined in libcmt.lib(strchr.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _sprintf already defined in libcmt.lib(sprintf.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _tolower already defined in libcmt.lib(tolower.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _getenv already defined in libcmt.lib(getenv.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _toupper already defined in libcmt.lib(toupper.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __isctype already defined in libcmt.lib(isctype.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _atoi already defined in libcmt.lib(atox.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _strstr already defined in libcmt.lib(strstr.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _calloc already defined in libcmt.lib(calloc.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _strncpy already defined in libcmt.lib(strncpy.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _strncmp already defined in libcmt.lib(strncmp.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _memmove already defined in libcmt.lib(memmove.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _strtoul already defined in libcmt.lib(strtol.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _strtol already defined in libcmt.lib(strtol.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fclose already defined in libcmt.lib(fclose.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _ungetc already defined in libcmt.lib(ungetc.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __errno already defined in libcmt.lib(dosmap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _sscanf already defined in libcmt.lib(sscanf.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _setlocale already defined in libcmt.lib(setlocal.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _printf already defined in libcmt.lib(printf.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _localtime already defined in libcmt.lib(localtim.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _time already defined in libcmt.lib(time.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fflush already defined in libcmt.lib(fflush.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __strdup already defined in libcmt.lib(strdup.obj)
LINK : warning LNK4098: defaultlib "MSVCRTD" conflicts with use of other libs; use /NODEFAULTLIB:library
..\..\Output\Release/FirewallMan.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
相信一个善良的人对上面的错误不会熟视无睹的,我的解决方法当然是对症下药:
Link->Category: Input->Ignore libraries:libcmt
clean后重新编译,还有下面的链接错误:
Linking...
nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc
nafxcw.lib(apphelp.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcw.lib(filelist.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcw.lib(dcprev.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcw.lib(timecore.obj) : error LNK2001: unresolved external symbol __mbctype
..\..\Output\Release/FirewallMan.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.
呵呵,这个错误真厉害,我用google搜索了一下,发现才3页,而且提出问题后后面基本上没有什么解决方法,其中我还硬着头皮看了俄语的链接,但遗憾的是从字面上看没有解答,而后上了微软网站,看到有提问,但是没有回答的。
后来尝试了很多方法,经过摸索,最后得出解决方法:
在Preprocessor中定义_AFXDLL
如果它提示:fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
就这样改:
C/C++->Code Generation->Multithread DLL (即实现/MD选项)
发表评论
-
__declspec(novtable) 的用法
2010-11-27 14:37 1593__declspec(novtable) 的用法 __d ... -
解决URLDownloadToFile缓存问题的两种方法
2010-09-09 15:18 2926解决URLDownloadToFile缓存问题的两种方法 ... -
修改richedit背景
2010-07-19 22:52 1654RichEditCtrl::SetBackgroundCo ... -
使用ADO封装类的数据库程序开发实例(下)
2010-07-12 15:30 1482使用ADO封装类的数据库 ... -
使用ADO封装类的数据库程序开发实例(上)
2010-07-12 15:28 1220使用ADO封装类的数据库 ... -
VC防止窗口和控件闪烁的方法
2010-07-09 21:16 20311、将Invalidate()替换为Invalidate ... -
防止窗口闪烁地办法
2010-07-09 21:13 1519防止窗口闪烁地办法 也许我们都碰到过这种情况,当你 ... -
使用ADO _ConnectionPtr
2010-07-06 16:04 5273// GetUser.cpp : Defines the ... -
VC用ADO访问数据库全攻略
2010-07-06 15:29 1805VC用ADO访问数据库全 ... -
深入GetMessage和PeekMessage (引自-MSDN技术组)
2010-06-10 16:59 3735深入GetMessage和PeekMessage (引自 ... -
界面编程总结(1)
2010-06-02 13:32 4018原文地址:http://blog.csdn.net/byx ... -
获取信息的有关Windows API
2010-05-27 10:01 3155获取信息的有关Windows API 1.窗口信息 ... -
VC中如何实现窗口的隐藏
2010-05-13 10:08 7879VC中如何实现窗口的隐藏 用MFC做的Dialog ... -
SetConsoleCtrlHandler 处理控制台消息
2010-05-07 17:32 18172SetConsoleCtrlHandler 处理控制台消 ... -
解决决错误: error C2850: 'PCH header file'
2010-04-27 19:45 1960解决决错误: error C2850: 'PCH hea ... -
VC++ GDI+编程的字体和文本绘制
2010-04-13 13:12 7990字体是文字显示和打印的外观形式,它包括了文字的字样、风格和尺寸 ... -
VC利用GDI+显示透明的PNG图片
2010-04-12 16:59 115581.在你将要使用GDI+的工程中,完成初始化 ... -
GDI+编程基础(一)GDI+ Vs GDI
2010-04-12 15:59 2342下载源代码一、GDI GDI是位于应用程序与不同硬件之间 ... -
VC画图
2010-04-12 15:50 1548BOOL DrawPic(HDC hdc, TCHAR* ... -
对话框的数据交换--MFC深入浅出
2010-04-12 10:43 2469对话框数据交换指以下两种动作,或者是把内存数据写入对应的控 ...
相关推荐
在本文中,我们将深入探讨如何使用Visual C++ 6.0(简称VC6)与Microsoft SQL Server 2008建立连接。这是一个重要的主题,因为理解如何在旧版开发环境中集成现代数据库技术对于许多开发者来说仍然是必要的。我们将...
4. **错误处理**:在与数据库交互时,应始终处理可能出现的错误。ADO提供了`GetErrorInfo`和`GetLastError`方法来获取错误信息。 5. **关闭连接**:完成操作后,记得关闭数据库连接以释放资源。可以使用`...
5. **错误处理**:在调用Web Service时,必须处理可能出现的网络错误、解析错误或服务端错误。这通常通过检查返回值或异常处理来完成。 6. **数据转换**:XML数据通常需要进行解析和序列化,以便在C++对象和Web ...
在实际应用中,你还需要考虑错误处理和异常安全,使用`try-catch`块捕获可能出现的错误,并根据需要提供相应的反馈。此外,对于多线程应用,还需要考虑连接的线程安全性。 总的来说,VC6.0连接SQL Server 2008主要...
根据给定的文件信息,我们可以总结出以下关于“VC连接SQL Server”的相关知识点: ### 1. 使用VC++连接SQL Server的基本步骤 在VC++环境下连接SQL Server通常涉及到以下几个主要步骤: - **初始化COM库**:通过...
7. **错误处理**:在实际编程中,应添加适当的错误处理代码,比如使用`AfxMessageBox`显示错误信息,或者使用`try/catch`块捕获异常。 这个“VC连接ACCESS数据库范例演示”应该包括上述所有步骤的详细说明和代码...
除此之外,ADO还支持事务处理,错误处理,以及更复杂的SQL操作,如存储过程的调用。对于初学者来说,理解并掌握这些基本概念和用法是迈进数据库编程的第一步。 标签中提到的"ADO数据库"是指使用ADO进行数据库操作,...
5. **异常处理**:在数据库操作中,错误处理是非常重要的,本教程可能会讲解如何在VC6中捕获和处理数据库操作异常。 6. **用户界面设计**:结合MFC(Microsoft Foundation Classes)库,创建用于输入和显示数据库...
在本文中,我们将深入探讨如何使用Visual C++(VC)2010通过ADO(ActiveX Data Objects)连接到SQL Server数据库。这是一个基础但实用的例子,不仅适用于SQL Server,还可以稍加修改以适应Oracle或MySQL等其他数据库...
在提供的文档“使用VC6进行ADO编程.doc”中,可能详细讲解了这些步骤,并可能包括错误处理、事务管理、参数化查询等高级主题。而“www.pudn.com.txt”可能是下载资源来源的说明或者版权信息。 通过学习和实践这些...
在VC++环境中,连接SQL Server数据库并实现各种...需要注意的是,实际应用中还要考虑错误处理、事务管理、游标操作、批处理等更复杂的场景。同时,为了提高性能和安全性,应尽量优化SQL语句,避免SQL注入等安全问题。
VC程序还可能包含错误处理机制,以确保在数据库操作出错时能够妥善处理。 6. **结果集处理**:当执行查询后,程序会返回一个结果集。VC代码需要遍历结果集,读取并处理数据。这可以通过ADO的Recordset对象完成。 7...
6. **错误处理**:在每个可能出错的地方,都应添加适当的错误处理代码,比如`try-catch`块。 ### 注意事项 - ADO操作通常涉及COM对象,需要正确管理对象的生命周期,防止内存泄漏。 - 数据库操作应尽可能使用参数...
6. **错误处理和调试**:在实际操作中,可能会遇到各种错误,如网络问题、权限问题或数据库配置错误。确保正确处理这些异常,通过日志或调试器进行排查。 通过以上步骤,你应该能够在VC6.0中成功连接到SQL Server ...
在本文中,我们将深入探讨如何在Microsoft Visual C++ 6.0(简称VC6.0)环境下使用ODBC和ADO技术来连接并操作SQL Server 2000数据库。这两种方法都是C++开发者常用的数据访问接口,使得应用程序能够与数据库进行交互...
在VC++环境中,使用ADO(ActiveX Data Objects)来连接Oracle数据库是一种常见的方法。ADO是Microsoft提供的一个数据访问接口,它允许程序员...不过,实际应用中还需要考虑错误处理、事务管理和性能优化等高级话题。
### VC_中连接Oracle数据库的几种方法 #### 引言 随着信息技术的不断发展,数据库管理系统在各类信息系统中的地位越来越重要。Oracle数据库作为一种广泛使用的数据库系统,以其强大的功能、优秀的性能及高安全性...
同时,该函数中包含了异常处理机制,以便在连接失败时能够给出错误提示。 在析构函数`~CTestadoView()`中,确保在程序退出前关闭并释放`Connection`对象,以释放资源并避免内存泄漏。 为了实现数据库操作,比如...
在Microsoft Visual C++ (VC) 开发环境中,ADO(ActiveX Data Objects)是连接到SQL Server数据库的一个常用方法。ADO提供了一种简单而高效的接口,允许开发者通过编程访问数据库,执行查询,插入、更新和删除数据。...