openssl 编程小结

今天写了一个基于openssl的证书生成的程序。弄了很久,里面的问题终于搞定了,于是来写点东西记录一下。以防以后出现这样的问题。

1、首先是有一句代码:

X509_NAME *pName=NULL;

它运行到这儿停住了,错误原因是出现了“error c2226:语法错误,意外的LPCSTR类型”。我也是纳闷了,我这个只是定义都出错了。断点都断不下来。在其他程序里面用到这儿也是可以的。为什么呢?我以为是我调用了什么不该调用的库,于是屏蔽一些库,可是问题依然存在。网上根本就没有相关的内容怎么来处理。

最后我在另外另外一篇不相关的帖子上面看到了一个信息:

#define X509_NAME   ((LPCSTR)7)

于是我就想是不是之前X509_NAME已经宏定义了。帖子里面给出了很多见解。

最后我的做法是#undef X509_NAME 取消宏定义。终于通过了。

最开始拿到这样的问题真是没有办法。

2、if (!(ent = X509_NAME_ENTRY_create_by_NID(NULL, nid,MBSTRING_ASC,(unsigned char*)value, -1)))
return -1;

这句代码网上很多地方都有。可是我自己调试的时候,在这一句总是return了。我百思不得其解。查看局部变量,发现ent是0x00000000。无论怎么变都是。

当多次添加的时候,多次调用,第一次是错误的,后面的都是正确的。不知道具体是什么原因,如果有高手知道求指教。


3、小结

做了这么一个简单的程序出了这么多的问题,编程能力不足,锻炼少了。遇见问题少了,解决问题的能力也就不强了。


你可能感兴趣的:(OpenSSL,证书生成,无错小结)