加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

c++调用DLL

(2008-10-23 16:15:44)
标签:

编程

it

分类: 计算机

这次调用的DLL是通过参数来获取数据,而不是返回值。

extern "C" __declspec(dllexport)  int __stdcall GetCrdInfo(unsigned char** pInfo);

int _stdcall(*GetCard)(unsigned char**);

typedef struct crdinfo
{
  unsigned char pCardNum[8];//卡号
}T_CARD_USER_INFO;

返回的参数还要赋值给这个结构的指针,涉及DLL、指针的指针、结构,TMD,C++基本类早忘光了。

unsigned char* p = NULL;
crdinfo *myCard = NULL;

HINSTANCE hr = LoadLibrary("Crd.dll");
(FARPROC &)GetCard = GetProcAddress(hr,"GetCrdInfo");
int i = GetCard(&p);

//以上调用DLL
if(i==0)
{
   myCard = (crdinfo *)p;
   for(int c=0;c<8;c++)
   {
    card_no +=  char(myCard->pCardNum[c]);
   }
 //char *到string就搞了半天,看看还有什么高效率的办法
}
delete[] p;
delete myCard;
FreeLibrary(hr);

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有