windows调用OpenSSL的问题

Sealional 2014-01-17 03:27:21
我在windows下编写基于OpenSSL的证书的各种操作,我只是在这个平台下开发,并没有用到依赖这个平台的函数或库,但是我的工程中如果不#include <windows.h>或者在其它头文件包含之后再#include <windows.h>,就会报错,我看了一下,在windows中的winCrypt.h头文件中也有X509_NAME这样的结构体,而这也是OpenSSL中的一个结构体。这个问题在http://hi.baidu.com/vysea/item/2b740e16dc24cf098ebde4ca中有提及,但是没看懂是什么意思,求各位帮助。如何才能去掉windows.h并且不依赖平台。
...全文
336 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sealional 2014-01-17
  • 打赏
  • 举报
回复
我把代码拿到linux去编译,发现可以用,那我就没什么好担心的了,搞个宏定义把windows.h半酣进来就好了。还是谢谢以上两位
derekrose 2014-01-17
  • 打赏
  • 举报
回复
引用 4 楼 Sealional 的回复:
[quote=引用 3 楼 zhao4zhong1 的回复:] 偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
这个工作量好大我的代码关系比较复杂,main就调用了一个函数,但是后面有千千万万函数。。。[/quote] 知不知道有个东西叫二分法
Sealional 2014-01-17
  • 打赏
  • 举报
回复
同时在http://hi.baidu.com/mingyuejingque/item/41f6603ee951d085c2cf29ee空间中有说到这个问题,但是也必须包含windows.h
Sealional 2014-01-17
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
找到错误了,X509_NAME *name = NULL;这句出错。(包含windows.h就不会出错)。我发帖的时候说的就是这个问题,融合避免OpenSSL库中的名字和windows库中的名字重复的问题。(也可能没必要这样,主要是我完全没有调用windows的库)。 出错信息是这样的: error C2065: “name”: 未声明的标识符 error C2296: “*”: 非法,左操作数包含“LPCSTR”类型 我看了一下,windows中的X509_NAME的定义是这样的: #define X509_NAME ((LPCSTR) 7)
Sealional 2014-01-17
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
这个工作量好大我的代码关系比较复杂,main就调用了一个函数,但是后面有千千万万函数。。。
赵4老师 2014-01-17
  • 打赏
  • 举报
回复
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
Sealional 2014-01-17
  • 打赏
  • 举报
回复
引用 1 楼 Sealional 的回复:
没有人遇到过这样的问题么?是这样的错误如果最开始就包含了windows.h就不会有错
还补充一个问题,工程中我并没有包含wincrypt.h
Sealional 2014-01-17
  • 打赏
  • 举报
回复
没有人遇到过这样的问题么?是这样的错误如果最开始就包含了windows.h就不会有错

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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