直接上代码,ref类型参数传递也是可以的。和之前一篇用反射调用可以互相参考。C#调用C++DLL--反射
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace T [继续阅读....]
直接上代码,ref类型参数传递也是可以的。和之前一篇用反射调用可以互相参考。C#调用C++DLL--反射
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace T [继续阅读....]
方法有不少,这里记录其中的一个方法。编译、调用通过了的。期间遇到的问题是C#调用时传递string类型的参数和返回值会报错。TargetInvocationException异常,值不在范围内,内存不可访问等等。
解决方法是;在c++的DLL中将string类型的参数返回值改为LPTSTR类型。在C#程序中使用StringBuilder类型来传入参数和接受返回值。
下面是代码:
usi [继续阅读....]
C++和java间进行SSL通信遇到了些问题,下面是解决方案。使用了Keytoo和OpenSSL两个工具。TARGETNAME改成要生成的文件名,PASSPHRASE就是密码。
基础的OpenSSL操作可以参考前文:
下面是server 和client 的代码。用没跑过,但是用类似的代码跑了。流程是这样的。要注意的是openssl中ssl连接建立前用阻塞的socket,建立后可以设置非阻塞。openssl每个操作后最好检查下是否成功。
/************server*************************/
#include <string.h>
#include [继续阅读....]
前文描述了如何在window下按安装openssl后,这里说下如何利用openssl生成证书。
1、 新建工作目录,将openssl安装路径下的apps/CA.pl 和 apps/openssl.cnf(在window中该文件会显示成名为openssl的快速拨号程序)文件复制到该路径。可以修改openssl.cnf文件中的一些参数。启动控制台,执行命令
CA.pl -newca
生成C [继续阅读....]