sqlfront.h在VC6下能正常编译,但在VC.NET下却不能正常编译。(急!)

fivehun 2006-03-15 06:23:31
//源码如下:
#if defined(DBNTWIN32)
#include <windows.h>
#endif

#include "sqlfront.h"
#include "sqldb.h"
...

错误提示:
c:\Program Files\Microsoft SQL Server\80\Tools\DevTools\Include\SQLFRONT.H(312) : error C2373: “LPCBYTE” : 重定义;不同的类型修饰符
d:\VC\PlatformSDK\Include\WinSCard.h(43) : 参见“LPCBYTE”的声明
...全文
186 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bg205 2006-03-16
  • 打赏
  • 举报
回复
重复定义了
把include有选择注释掉再编译试试
fivehun 2006-03-16
  • 打赏
  • 举报
回复
可能是大家没有明白我的意思,是这样的:
我这里C++读取数据库是通过SQLSERVER提供的库来操作的,其中需要引入一个sqlfront.h的头文件,而在这个头文件中有一个变量LPCBYTE与.net下的windows.h中(其实是windows.h中引入的WinSCard.h文件中进行了重定义)的LPCBYTE进行了重定义,所以产生错误。是的,可以通过预编译指令或是删掉sqlfront.h中的这个重定义,但由于很多开发人员都是直接引用的SQLSERVERK中的sqlfront.h来进行编程的,我总不能去将每个人的这个sqlfont.h文件都做修改吧?不这样,用什么其它方法可以在不修改sqlfront.h与windows.h的情况下将这个重定义错误解决呢?不知大虾们听明白了没有?
SEUU 2006-03-15
  • 打赏
  • 举报
回复
是MS自己的吗?

不会冲突吧,是你自己写的函数吗?

是的话就改一下吧,要是MS的话,一般会有选项可以设置的

还有,你的分多给我一点吧,我是来得分的,我只要星星!
fivehun 2006-03-15
  • 打赏
  • 举报
回复
但这个sqlfront.h文件中的“LPCBYTE”声明是与系统window.h中产生冲突了,我想删除或是用预编译命令来处理不是好的办法,因为你不可能将所有用户的头文件sqlfront.h修改吧?还有其它的办法吗?
popoxx 2006-03-15
  • 打赏
  • 举报
回复
楼上正解
healer_kx 2006-03-15
  • 打赏
  • 举报
回复
是因为VC7 include了更多的头文件。有类型重复定义了。
你自己把那个定义删除就行了。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧