ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C/C++实战011:解决使用VC++6.0编程遇到的问题

2019-02-25 14:55:06  阅读:644  来源: 互联网

标签:lib Fwlib32 declspec C++ 011 6.0 VC6LineNumberAddin


    受到加工现场电脑管制的限制,电脑无法安装Visual Studio 2012软件,为了适应现场的环境,不得不使用VC++6.0(免安装版本)来开发现场设备交互功能,目前主要是对FANUC设备进行二次开发,通过我们的智能铣削平台与设备进行对接,从而实现远程的控制设备并对设备进行参数修改和基本的信息采集。

 问题1:用VC++6.0编写DLL时出现错误提示:cannot open file "kernel32.lib",这里是程序载入的文件路径不对,默认是D:\VC98\Lib,但是我的程序没有放在D盘根目录下,所以要自行修改,你也可以直接把程序放到相同的位置。

解决方法:因为使用的是绿色免安装版本,所以配置需要修改一下,在菜单选择 Tools -> Option,在 打开的选项对话框中选择Directories,在Show directories for处下拉选项,找到Library files,然后把kernel32.lib所在的目录名添加进来。

问题2:引入Fwlib32.h之后还是无法获取到对应的函数,编译时提示错误 unresolved external symbol __imp__cnc_allclibhndl3@16 ,因该是没找到对应的Fwlib32.lib文件。

解决方法:在函数中直接引入Fwlib32.lib 文件, #pragma comment(lib, "Fwlib32.lib "),或者你也可以在porject ->settings的link页面中object/librarymodules中添加Fwlib32.lib,注意用空格区分开。

问题3,VC++6.0不显示行号,代码一多想查找问题就很不方便 ,都不知道自己移到哪行了。下载 VC++6.0行号插件VC6 LineNumberAddin

解决方法:下载个VC++6.0插件VC6LineNumberAddin,把VC6LineNumberAddin.dll这个文件放到vc++6.0的安装目录下,我放在D:\VC98\Gallery\VC6LineNumberAddin中,双击VC6LineNumberAddin.reg进行注册然后在菜单栏找到Tools -> customize ->Add-ins and Macro Files ,浏览找到VC6LineNumberAddin.dll将其添加进Add-ins and Macro中并将其选中再点击关闭,重启VC++6.0就可以显示行号了。

问题4,编译后提示warning C4273: '***' inconsistent dll linkage.  dllexport assumed(DLLTExCed不一致) ,虽然编译通过但是总有警告提示,看着很是不舒服。

     解决方法:这里是在test.h头文件中定义的问题,这里我定义的是_declspec(dllimport),dllimport是在Windows中从别的动态库中声明导入函数、类、对象等供本动态库,而__declspec(dllexport)则是在Windows的动态库中,声明导出函数、类、对象等供外面调用,将函数、类等声明为导出函数,为对外接口函数、类等供其它程序的调用的,所以这里我们要用到的应该是__declspec(dllexport)。

#ifndef DLL_API
//#define DLL_API _declspec(dllimport)  //从别的动态库中声明导入
#define DLL_API _declspec(dllexport)  //申明函数给其他程序调用
#endif

标签:lib,Fwlib32,declspec,C++,011,6.0,VC6LineNumberAddin
来源: https://blog.csdn.net/kevinfan2011/article/details/87854788

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有