导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2020/2/18 3:31:41
标题:
求助delphi 调用C++ dll 求助
浏览:1233
加入我的收藏
楼主:
求助delphi 调用C++ dll 求助 #ifndef _N_IDREADERAPI_H_ #define _N_IDREADERAPI_H_ 1 #define IDREADER_WINAPI __stdcall #define IDREADER_DLLEXPORT _declspec(dllexport) /********** * * 函数名: ReadIDCardComm * 功能: 读取身份证函数 * 作者: shz * 日期: 2015-6-1 * 备注: 出参 编码为unicode 两个字节一个汉字 * 照片解码后 会在当目录生成一个名"ZP.bmp"的身份证图片 * 参数说明: * int iPort, COM口 是1-9 USB口是1001-1016 * unsigned char *ucName, //姓名 * int &iNamelen, * unsigned char *ucSex, //性别 * int &iSexLen, * unsigned char *ucIDNo, //身份证号 * int &iIDNoLen, * unsigned char *ucNation, //民族 * int &iNationLen, * unsigned char *ucBirthday, //生日 * int &iBirthdayLen, * unsigned char *ucAddress, //地址 * int &iAddressLen, * unsigned char *ucGrantDept, //签发机关 * int &iGrantDeptLen, * unsigned char *ucUserLifeBegin, //有效开始日期 * int &iUserLifeBeginLen, * unsigned char *ucUserLifeEnd, //有效结尾日期 * int &iUserLifeEndLen, * unsigned char *errMsg, //错误信息 * int &iErrMsgLen, * int nTimeOut //超时时间 * 返回值 0 成功 -1 失败 -2超时 -3取消 * **********/ extern "C" IDREADER_DLLEXPORT int IDREADER_WINAPI ReadIDCardComm( int iPort, unsigned char *ucName, int &iNamelen, unsigned char *ucSex, int &iSexLen, unsigned char *ucIDNo, int &iIDNoLen, unsigned char *ucNation, int &iNationLen, unsigned char *ucBirthday, int &iBirthdayLen, unsigned char *ucAddress, int &iAddressLen, unsigned char *ucGrantDept, int &iGrantDeptLen, unsigned char *ucUserLifeBegin, int &iUserLifeBeginLen, unsigned char *ucUserLifeEnd, int &iUserLifeEndLen, unsigned char *errMsg, int &iErrMsgLen, int nTimeOut); /********** * * 函数名: StopReadIDCardComm * 功能: 取消身份证读取 * 作者: shz * 日期: 2015-6-1 * 备注: * **********/ extern "C" IDREADER_DLLEXPORT void IDREADER_WINAPI StopReadIDCardComm(void); extern "C" IDREADER_DLLEXPORT void IDREADER_WINAPI SetPicPathComm(const char *szFilePath); typedef struct ID_INFO { char aName[50]; char aSex[5]; char aNation[20]; char aBrithday[10]; char aAddress[140]; char ID[20]; char aOrgan[50]; char date[30]; char aPassNum[20]; char aPassCount[6]; char aCategory[20]; }ID_INFO; extern "C" IDREADER_DLLEXPORT int IDREADER_WINAPI ReadIDCardCommEx ( int iPort, ID_INFO &info, char *errMsg, int & iErrMsgLen, int nTimeOut); typedef struct FOREIGN_INFO { char aEName[140]; char aSex[20]; char ID[40]; char aNationCode[6]; char aCName[30]; char aUserLifeBegin[16]; char aUserLifeEnd[16]; char aBrithday[16]; char aCardVersion[4]; char aCategoryCode[8]; char aCardType[50]; char aSaveAred[6]; }FOREIGN_INFO; extern "C" IDREADER_DLLEXPORT int IDREADER_WINAPI ReadForeignIDCard ( int iPort, FOREIGN_INFO &info, char *errMsg, int & iErrMsgLen, int nTimeOut); extern "C" IDREADER_DLLEXPORT int IDREADER_WINAPI GetIDCardType (int iPort,char *errMsg); #endif 如何用delphi 动态调用 procedure TForm1.Button1Click(Sender: TObject); var th:Thandle; tp:Tfarproc; begin th:= loadlibrary('Idreaderapicomm.dll'); //装载dll if th>0 then begin // memo1.Lines.Insert(0,'装载 Idreaderapicomm.dll 成功!'); tp:=getprocaddress(th,pchar('ReadIDCardComm')); if assigned(tp) then begin memo1.Text := tpXxxxxxxxxxx 怎么写 end; end else begin showmessage('Idreaderapicomm.dll 没有找到!'); end; end; 需要加什么声明。。。求助如何动态调用。。。
----------------------------------------------
-
作者:
2020/2/18 10:20:37
1楼:
看样子是身份证的。这个十大厂家都DEMO,如果没有的找一个有的就行了。我用的新中新,和国腾,神思的都用过,用法一样。你上官网找找新中新的。
----------------------------------------------
山外青山楼外楼,能人背后有能人弄..
作者:
2020/2/18 11:19:44
2楼:
var tp: function (....): integer; stdcall; /// 把c里那个函数定义翻译过来 begin .... if assigned(tp) then tp(...); /// 调用 end; 结构和函数自己翻译就行了
----------------------------------------------
--
作者:
2020/2/18 14:46:38
3楼:
是啊, 现在小区防控了, 让人员自主刷身份证进入。 又要测体温, 又要检查身份工作量太大了。。一个上万人进出。。
----------------------------------------------
-
作者:
2020/2/18 14:55:40
4楼:
C/C++ Delphi ABC TABC ACCEL TAccel ATOM TAtom BITMAP TBitMap BITMAPCOREHEADER TBitmapCoreHeader BITMAPCOREINFO TBitmapCoreInfo BITMAPFILEHEADER TBitmapFileHeader BITMAPINFO TBitmapInfo BITMAPINFOHEADER TBitmapInfoHeader BOOL Bool CBT_CREATEWND TCBT_CreateWnd CBTACTIVATESTRUCT TCBTActivateStruct CHAR Char CHAR* PChar CLIENTCREATESTRUCT TClientCreateStruct COLORREF TColorRef COMPAREITEMSTRUCT TCompareItemStruct COMSTAT TComStat CREATESTRUCT TCreateStruct CTLINFO TCtlInfo CTLSTYLE TCtlStyle CTLtype TCtltype DCB TDCB DDEAACK TDDEAck DDEADVISE TDDEAdvise DDEDATA TDDEData DDEPOKE TDDEPoke DEBUGHOOKINFO TDebugHookInfo DELETEITEMSTRUCT TDeleteItemStruct DEVMODE TDevMode DOUBLE Double DRAWITEMSTRUCT TDrawItemStruct DWORD LongInt ENUMLOGFONT TEnumLogFont EVENTMSG TEventMsg FARPROC TFarProc FIXED TFixed FLOAT Single GLYPHMETRICS TGlyphMetrics HANDLE THandle HANDLETABLE THandleTable HARDWAREHOOKSTRUCT THardwareHookStruct HELPWININFO THelpWinInfo INT Integer KERNINGPAIR TKerningPair LOGBRUSH TLogBrush LOGFONT TLogFont LOGPALETTE TLogPalette LOGPEN TLogPen LONG LongInt LONG DOUBLE Extended LONG INT LongInt LPSTR PChar LPWSTR PWideChar MAT2 TMat2 MDICREATESTRUCT TMDICreateStruct MEASUREITEMSTRUCT TMeasureItemStruct MENUITEMTEMPLATE TMenuItemTemplate MENUITEMTEMPLATEHEADER TMenuItemTemplateHeader METAFILEPICT TMetaFilePict METAHEADER TMetaHeader METARECORD TMetaRecord MINMAXINFO TMinMaxInfo MOUSEHOOKSTRUCT TMouseHookStruct MSG TMsg MULTIKEYHELP TMultiKeyHelp NCCALCSIZE_PARAMS TNCCalcSize_Params NEWTEXTMETRIC TNewTextMetric OFSTRUCT TOFStruct OUTLINETEXTMETRIC TOutlineTextMetric PAINTSTRUCT TPaintStruct PALETTEENTRY TPaletteEntry PANOSE TPanose PATTERN TPattern POINTFX TPointFX PSTR PChar PWSTR PWideChar RASTERIZER_STATUS TRasterizer_Status RGBQUAD TRGBQuad RGBTRIPLE TRGBTriple SEGINFO TSegInfo SHORT SmallInt SHORT INT SmallInt SIZE TSize TEXTMETRIC TTextMetric TPOINT TPoint TRECT TRect TTPOLYCURVE TTTPolyCurve TTPOLYGONHEADER TPolygonHeader UINT Word UNSIGNED Word UNSIGNED CHAR Byte UNSIGNED INT Word UNSIGNED LONG LongInt(DWORD) UNSIGNED LONG INT LongInt UNSIGNED SHORT Word UNSIGNED SHORT INT Word VOID* Pointer WINDOWPLACEMENT TWindowPlacement WINDOWPOS TWindowPos WNDCLASS TWndClass WORD Word
----------------------------------------------
-
作者:
2020/2/20 17:56:21
5楼:
身份证读卡器SDK是通用的,网上找个可用的就可以了,都是一样的. 不行你用我发的这个也是一样的.
----------------------------------------------