一个C++的函数声明,请帮忙翻译一下 ( 积分: 30 )

  • 主题发起人 主题发起人 cst_zf
  • 开始时间 开始时间
C

cst_zf

Unregistered / Unconfirmed
GUEST, unregistred user!
BSTR* GetLic (BSTR callee, BSTR license)
给了一个程序示例是这么写的,我怀疑上边的声明的描述有点问题
CString m_license;
m_license = GetLic("12345134", "XXXXXX");
希望熟悉这个的人给个delphi声明,谢谢
注: 这是个dll函数的声明
 
BSTR* GetLic (BSTR callee, BSTR license)
给了一个程序示例是这么写的,我怀疑上边的声明的描述有点问题
CString m_license;
m_license = GetLic("12345134", "XXXXXX");
希望熟悉这个的人给个delphi声明,谢谢
注: 这是个dll函数的声明
 
用tlb工具导入就看到了
 
tlb导入工具是什么呀?
这个只是一个普通的DLL,不是ActiveX控件
 
PWideString GetLic (const callee, license : WideString)
 
BSTR好像是COM里面的类型,记不清楚了,所以让你在Delphi里面Project菜单下面的那个Import Type Libary看看,用WideString或者OleVariant看看行不行,随便建立一个ActiveForm就可以有个属性
property Caption: WideString read Get_Caption write Set_Caption;
在View菜单下面的Type Library里面打开对应的Caption属性,可以看到是对应BSTR的,所以你可以测试一下
 
C++: BSTR* GetLic (BSTR callee, BSTR license)
--> Pascal: function GetLic(callee,license:BSTR):^BSTR;
BSTR是什么就不清楚了,要看看它的定义才知……
 
BSTR是OLECHAR *
OLECHAR = WideChar
在delphi里没有定义
 
用这个似乎是通过了[:D]
function GetLic(const A,B: WideString):PWideChar;
stdcall;
external 'GetLicense.dll';
 
正确了。
不过不知道为什么返回值用PWideString不行
准备放分,
心情高兴的话,另开帖讨论这个问题吧
 
多人接受答案了。
 
后退
顶部