解决方案 »
- 关于ActiveX控件如何实现Socket的UDP接收数据功能
- MFC中如何實現類似VB的MDI結構, 完全不需要View/Doc,可以調用不同的FORM
- 怎么在Datagrid上显示小图标?
- 数据库程序写完后怎么才能让它在别的机器上运行?
- 打开数据库时为什么提示如下的错误?
- OCX工程转EXE工程,急求方法!
- 共300分请教问题,除了用automation方式,还怎么能用VC查询WORD内容?(
- 程序运行没错,但不出结果(帮我看看)
- 关于目前大家对DirectUI界面技术的误解
- 关于图形
- CTreeCtrl关于TVN_SELCHANGING和TVN_SELCHANGED的问题
- 求教关于VARIANT_BOOL的问题
UNICODE UTF-16?
UTF-8?
还是ANSI /GBK?我记得老版本的Delphi不能直接编译Unicode[utf-16]字符串的
估计是这个原因
对应C++
typedef int(__stdcall *lpReadCard)(int,wchar_t **);
你这样改下试试
Delphi自D2009开始:Char对应WideChar;
C++中wchar_t对应Delphi WideChar;
if (hDll != NULL) {
lpReadCard ReadCard = (lpReadCard)GetProcAddress(hDll, "readCard");
if (ReadCard != NULL) {
char *cardNo = NULL;
int ret = ReadCard((int)icdev, &cardNo);
MessageBoxA(NULL, cardNo, "info", MB_OK);
// 这里的 free 只是例子,依赖于 dll 如何分配内存。
// 或者看 dll 是否提供了释放内存的函数。
free(cardNo);
}
FreeLibrary(hDll);
}