为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > warning C4273 dll链接不一致

warning C4273 dll链接不一致

2018-03-17 6页 doc 23KB 263阅读

用户头像

is_105949

暂无简介

举报
warning C4273 dll链接不一致warning C4273 dll链接不一致 warning C4273 dll链接不一致 warning C4273:dll链接不一致2010-06-02 16:39方法1:选择项目-属性-预处理器-预处理定义,增加:HYCOMMONWINAPI_EXPORTS方法2:就是在#ifdef HYCOMMONWINAPI_EXPORTS#define HYCOMMONWINAPI_API __declspec(dllexport)#else#define HYCOMMONWINAPI_API __declspec(dll...
warning C4273  dll链接不一致
warning C4273 dll链接不一致 warning C4273 dll链接不一致 warning C4273:dll链接不一致2010-06-02 16:39方法1:选择项目-属性-预处理器-预处理定义,增加:HYCOMMONWINAPI_EXPORTS方法2:就是在#ifdef HYCOMMONWINAPI_EXPORTS#define HYCOMMONWINAPI_API __declspec(dllexport)#else#define HYCOMMONWINAPI_API __declspec(dllimport)#endif前面增加#define HYCOMMONWINAPI_EXPORTS其实这两种方法都是增加定义方法3:在你的dll cpp文件中把#define HYCOMMONWINAPI_EXPORTS加在#include接口文件.h的前面方法4:右击dll工程--属性,打开属性页,展开:配置属性--C++--预处理器,在预处理器定义的最后面填入:_AFXEXT,再次编译则搞掂。以上方法逐一试下,不知道能不能帮到你。另外这种问题最好去CSDN社区去问比较好,百度上牛X的人比较少,我就经常去CSDN。 非常郁闷的是,这个问题在relaese dll时又会出现,而且,上面的第4种解决方式没有作用,其它的几种方式暂时不甚了解到底怎么操作,因为第3种方法按它的做,出错 -- VS2003 IDE中常见问题【转】 VS2003 IDE笔记我在安装Microsoft Visual Studio.Net的时候,总是出现这样的提示:"安装程序检测到另一个程序要求计算机重新启动。必须重新启动计算机后才能安装Visual Studio.Net系统必备。系统重新启动后,您需要重新启动安装程序。单击"确定"重新启动。单击"取消"退出安装程序,以后再安装。"然后我就单击"确定"重新启动电脑,待系统启动完毕后,重新启动安装程序,结果上述提示再次出现,又是重新启动电脑,然而还是这样的提示,无法安装。请高手指点。我的操作系统是WINXP SP2的,请问到底是什么原因?解决办法:在注册删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\pendingfilerenameoperations然后再装就可以~项目:常规-》配置 类型(.exe.dll.lib生成文件实用工具)项目:system-子系统(windows console)项目:C/C++-》预处理器-》与处理器定义(预定义一些宏,如:WIN32 _DEBUG _CONSOLE)启用扩展指令集:项目:C/C++-》代码生成(启用增强指令集2003支持SSE SSE2)2007-6-28这几天vc2003的编译输出显示的中文都是乱码,搞得我真不爽。原来是上次做的控制台命令程序修改了控制台的代页码936(中文)=》437(西文)。并且应用到所有的console窗口。但为什么会影响到编译的输出就不得而知了。2007-9-13附加×目录头文件目录:项目:C/C++》常规》附加包含目录库文件目录:项目:链接器》常规》附加库目录设置输出目录:(和工作目录)项目:配置属性》链接器》导入库(如:$(OutDir)/cgloverd.lib) 项目:配置属性》常规》输出目录(如.\.\bin)如果要更改输出exe的名称可以这样:项目:配置属性》链接器》输出文件(如:.\.\bin/文件名.exe)(即输出 文件名)这样你可以把所有共享的dll放在.\.\bin中,然后应用程序编目录/ 译链接后自动放到.\.\bin中以实现共享dll(另外如果出现如下错误:无法启动调试.无法启动程序"。",系统找不到指定文件,就是因为未设置输出文件,可以如上添加输出exe)如果你要应用程序的目录为其所在的目录(即输出目录),就要设置项目:配置属性》调试》工作目录(值同于输出目录(如:.\.\bin));[比如加载资源,用到文件路径,也是基于工作目录的][这个可能在用打开文件对话框有用,比如你设置exe输出到.\.\bin,那么默认的工作目录就和exe所目录不一样,那么你设置的打开对话框的默认路径在.\.\bin下的exe和你刚编译链接即刻出现的exe下是不一样的,所以你设置工作目录同输出目录一样,工作目录设置对你刚编译链接即刻出现的exe的工作目录产生了影响]==2007-10-8设置pdb文件目录(程序数据库文件)项目:配置属性》链接器》调试生成程序数据库文件(如:$(IntDir)/$(ProjectName).pdb)其中$(IntDir)为中间目录==2007-10-8设置lib文件目录(导出库目录)项目:配置属性》链接器》高级导入库(如:lib\cglover.lib)==2007-9-18 DLL,出现warning:"。"dll链接不一致原因:项目:配置属性》C/C++》命令行中的所有选项有指定/D"CGLOVER_EXPORTS"(这里环境自动指定的导出符号)#ifdef LOVER_EXPORTS// 这里出错=》CGLOVER_EXPORTS#define CG_EXPORT __declspec(dllexport)#else#define CG_EXPORT __declspec(dllimport)#endif2007-9-18 DLL,出现链接错误:无法打开文件"clock.def"原因:这里的错误是clock.def的路径错误,以致找不到。解决:项目:配置属性》链接器》输入》模块定义文件:路径/cglover.def也可以项 目:配置属性》链接器》命令行》在附加选项中添加:/DEF:"路径 /clock.def"2007-9-20使用tinyxml.lib出现了与一些Runtime-lib重定义的链接错误原因:我想可能是tinyxml不支持多线程。解决:项目:配置属性》 也可以采用忽略指定库(这里为多C/C++》代码生成运行时库改为单线程(/ML). 线程的库):项目:配置属性》链接器》输入》忽略指定库(如:msvcrt.lib(多线程DLL)2007-9-20当使用模块定义文件(.def)时,我们会在.def中写:(LIBRARY导出的dll名)但由于在一个dll中只允许一个.def文件,所以我们这时无法区别对待Debug和Release版DLL,因为这是导出的.lib文件中填写的是.def指定的DLL名,比如(MyD.lib和My.lib中认定的都是.def定义的(My.lib),虽然我们能导出MyD.dll和My.dll.解决:将LIBRARY后面的去掉(有省事有实惠,干吗还要写导出dll名呢)==2007-9-26 debug时出现链接错 error LNK2019:无法解析的外部符号误:libcpd.lib(xdebug.obj): __malloc_dbg,该符号在函数"void*__cdecl operator new(unsigned int,struct std:_DebugHeapTag_t const&,char*,int)"(?2@YAPAXIABU_DebugHeapTag_t@std@PADH@Z)中被引用libcpd.lib(_tolower.obj):error LNK2001:无法解析的外部符号 __malloc_dbg libcpd.lib(xdebug.obj):error LNK2019:无法解析的外部符号__free_dbg,该符号在函数"void __cdecl operator delete(void*,struct std:_DebugHeapTag_t const&,char*,int)"(?3@YAXPAXABU_DebugHeapTag_t@std@PADH@Z)中被引用而且当使用fstream时才出现这个错误另外使用Release时没错误。经检查项目》配置属性》C/C++》代码生成》运行时库》发现Debug时使用的是:单线程(/ML)Release时使用的也是:单线程(/ML)将Debug的改为:单线程调式(/MLd)好像是上次发现程序中使用的Tinyxml库不支持多线程运行库,改为单线程的运行库,但debug的没改为调试版本的==2007-9-26输出dll后能够让你选择测试程序,若要改为不使用,如下:项目:配置属性》调试》命令:中的字符串就指定了测试程序路径名文件名,去掉即可。==vc6-vc7的系列问题及解决方法-1 zz2006-07-19 09:57最近由于工作需要,把项目从vc6升级到vc7(vc.net2003)。升级过程遇到些问题,于此。1.编译时出现:WINVER not defined.Defaulting to 0X0501(Windows XP and Windows.NET Server)这个问题是因为没有指定工程要使用的平台SDK的版本。Minimum system required Macros to define Windows Server 2003 family _WIN32_WINNT=0X0502 Windows XP _WIN32_WINNT=0X0501 Windows 2000 _WIN32_WINNT=0X0500 Windows NT 4.0 _WIN32_WINNT=0X0400 Windows Me _WIN32_WINDOWS=0X0490 Windows 98 _WIN32_WINDOWS=0X0410 Internet Explorer 6.0 _WIN32_IE=0X0600 Internet Explorer 5.01,5.5 _WIN32_IE=0X0501 Internet Explorer 5.0,5.0a,5.0b _WIN32_IE=0X0500 Internet Explorer 4.01 _WIN32_IE=0X0401 Internet Explorer 4.0 _WIN32_IE=0X0400 Internet Explorer 3.0,3.01,3.02 _WIN32_IE=0X0300解 决办法:属性,C/C++,命令行,附加项中添加/D _WIN32_WINNT=0x0501(因为 我是在xp下工作的所以是0x0501)2.Link时出现:LINK:warning LNK4075: 忽略"/EDITANDCONTINUE"(由于"/INCREMENTAL:NO")这个问题是因为在 vc6中,工程使用的增量编译。解决办法:属性,链接器,常规,启动增量链 "U":不可识别的字符接选择是(INCREMENTAL)3.编译时出现:warning C4129: 转义序列error C3847:通用字符中的错误符号;必须使用十六进制数字原因: 为开发全球通用的应用程序,.NET Framework使用Unicode UTF-16(Unicode 转换格式,16位编码形式)来表示字符。在某些情况下,.NET Framework在内 部使用UTF-8。引入通用字符名称的格式是\u####或\U########。解决办法: //#include MAKEPATH(MAIN_IMAGE_PATH,FunUtil\Unit_star.txt)#include".\ImageData\ML 128160\FunUtil\Unit_star.txt"4.链接时出现:LIBCMTD.lib(crt0dat.obj): error LNK2005:_exit已经在MSVCRTD.lib(MSVCR71D.dll)中定义等类似错误 原因:Run-Time Library?Run-Time Library是编译器提供的标准库,提供一 些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run- Time Libraries。当然也有Standard C++libraries。CRun-Time Libraries实 现ANSI C的标准库。VC安装目录的CRT目录有C Run-Time库的大部分源代码。 CRun-Time Libraries有静态库版本,也有动态链接库版本;有单线程版本, 也有多线程版本;还有调试和非调试版本。?动态链接库版本:/MD Multithreaded DLL使用导入库MSVCRT.LIB/MDd Debug Multithreaded DLL使 用导入库MSVCRTD.LIB?静态库版本:/ML Single-Threaded使用静态库 LIBC.LIB/MLd Debug Single-Threaded使用静态库LIBCD.LIB/MT Multithreaded使用静态库LIBCMT.LIB/MTd Debug Multithreaded使用静态库 LIBCMTD.LIB若要使用此运行时库请忽略这些库单线程(libc.lib)libcmt.lib、 msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib多线程 (libcmt.lib)libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib使用DLL的多线程(msvcrt.lib)libc.lib、libcmt.lib、libcd.lib、 libcmtd.lib、msvcrtd.lib调试单线程(libcd.lib)libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib调试多线程(libcmtd.lib)libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib使用DLL的调试多线程(msvcrtd.lib)libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib解决方法:属性,链接器,输入,忽略指定库libc.lib、libcmt.lib、 msvcrt.lib、libcd.lib、libcmtd.lib(这是我需要忽略的,你可以根据你工程的实际情况选择。)
/
本文档为【warning C4273 dll链接不一致】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索