以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于__stdcall类函数调用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=183470)

--  作者:s111321
--  发布时间:2022/11/5 21:17:00
--  关于__stdcall类函数调用

DLL是 CardReaderDLL.dll

int __stdcall ZJ_Hmac_SM3(char* key, char* secret,char* unix_timestamp,char* request_body, char* outMsg)


?  key:入参;统一下发给用户的key,测试时可传任意字符串。


?  secret: 入参;进行Hmac计算时的秘钥secret416位字符串)。


?  unix_timestamp: 入参;GMT时间戳字符串,传入”0”字符串时按系统时间运算,不为”0”字符串时按传入的值运算


?  request_body:入参;报文字符串。


?  outMsg:出参;由时间戳和Hmac_SM3加密串拼接的字符串,中间用英文冒号隔开。例1634710020:D3CA2B94936228E3B7B87CBCDA848789AF8AB84FD4B9DEF6AFE1421475EB0797


请教下,各位大佬,这类函数怎么调用?



--  作者:有点蓝
--  发布时间:2022/11/6 20:24:00
--  
参考:http://www.foxtable.com/webhelp/topics/1937.htm

大概这样定义
Public Declare Function ZJ_Hmac_SM3 Lib "CardReaderDLL.dll"(key As string,secret As string,unix_timestamp As string,request_body As string,byref outMsg As string) As Integer 

--  作者:s111321
--  发布时间:2022/11/7 8:46:00
--  
蓝老师,这个出参怎么处理,转换成String
--  作者:有点蓝
--  发布时间:2022/11/7 8:52:00
--  
dim outMsg as string

dim ret as integer = ZJ_Hmac_SM3(key,secret ,unix_timestamp ,request_body ,outMsg )

--  作者:s111321
--  发布时间:2022/11/8 13:17:00
--  
这个接口使用 _stdcall,堆栈的没做到过,能给个详细的案例吗? 网上都没找到.net下怎么处理这种接口
--  作者:有点蓝
--  发布时间:2022/11/8 13:31:00
--  
我也没做过,甚至_stdcall还是第一次见这个词。找提供接口的供应商要.net的使用实例