日期:2014-05-17  浏览次数:20961 次

求救 求救!根据一个C++的头文件写调用的类库
 求救!!
要用C#写一个调用C++类的类库,下面是发行库的头文件

#ifndef _PUB___

#define _PUB___

#define SN_SIZE 8 /* 序列号长度 */
#define MAC_SIZE 6 /* mac地址长度 */
#define IPADDR_SIZE 15 /* ip地址长度 */


/* 返回结果 */

typedef enum result
{
SUCC = 0, /* 成功 */
FAIL = 2000, /* 失败 */
ERROR_PARAM, /* 参数错误 */
ERROR_BUTT /* 无效的结果值 */

}RESULT_E;

/* 通知事件结构体 */
typedef struct notify
{
int iResult; /* 结果 */
unsigned char aucSn[SN_SIZE]; /* 唯一序列号 */
unsigned char aucMac[MAC_SIZE]; /* MAC地址 */
unsigned char aucIpAddr[IPADDR_SIZE]; /* ip地址 */

}NOTIFY_S;

/* 发行结果 通知事件函数 */

typedef unsigned int (*NOTIFY)(NOTIFY_S *pstNotify);

/*初始化结构体 */

typedef struct init
{
NOTIFY pfuncNotify; /* 结果 通知事件函数 */

}INIT_S;

/* 返回加密芯片发行库的版本号字符串 */

unsigned char *version(void);

/* 设置debug调试信息开关 true 打开, false关闭 */
void debug_set(bool bl);

/* 设置错误调试信息开关 true 打开, false关闭 */
void error_set(bool bl);



/* 初始化 */

int init(INIT_S *pstInit);

#endif /* 发布*/


软件 = 主程序 + 发行库.

使用发行库时, 主程序只要调用发行库初始化函数int init(INIT_S *pstInit);

主程序要写一个notify通知函数, 初始化发行库时, 主程序把notify通知函数的地址通过初始化参数传递给发行库.  当发行库发行完一台单机版设备后, 发行库会调用这个notify通知函数, 返回给主程序发行信息

实在不会,请教坛子里的高人!!
------最佳解决方案--------------------
C++部分要包装成dll,才可以被C#调用哦。
------其他解决方案--------------------
引用:
C++部分要包装成dll,才可以被C#调用哦。

可是现在就只有个头文件,要我写...
假设已经有了dll  ,按文件来写要怎么写呢?
------其他解决方案--------------------
引用:
引用:C++部分要包装成dll,才可以被C#调用哦。
可是现在就只有个头文件,要我写...
假设已经有了dll  ,按文件来写要怎么写呢?

用Windows SDK工具中的depend.exe看看,dll的导出函数都有哪些。
------其他解决方案--------------------
引用:
引用:引用:C++部分要包装成dll,才可以被C#调用哦。
可是现在就只有个头文件,要我写...
假设已经有了dll  ,按文件来写要怎么写呢?
用Windows SDK工具中的depend.exe看看,dll的导出函数都有哪些。

这。。。。我是真的没有dll   只有头文件
------其他解决方案--------------------
引用:
引用:引用:引用:C++部分要包装成dll,才可以被C#调用哦。
可是现在就只有个头文件,要我写...
假设已经有了dll  ,按文件来写要怎么写呢?
用Windows SDK工具中的depend.exe看看,dll的导出函数都有哪些。
这。。。。我是真的没有dll  ……


那怎么调用?就好比我给你本电视的说明书,不给你电视机,你怎么看电视?
------其他解决方案--------------------
引用:
引用:引用:引用:引用:C++部分要包装成dll,才可以被C#调用哦。
可是现在就只有个头文件,要我写...
假设已经有了dll  ,按文件来写要怎么写呢?
用Windows SDK工具中的depend.exe看看,dll的导出函数都有哪些……


所以我就来求救了,而且看起来这个头文件还是很清晰的
------其他解决方案--------------------