从VB6调用DLL函数

分类: 365网络科技有限公司是做什么的 发布时间: 2025-08-08 16:14:32
作者: admin 阅读: 3258 | 点赞: 500
从VB6调用DLL函数

VB6 dll始终是COM。我将用尽可能少的语言来描述一个例子。假设在ActiveX中有一个VB6 DLL项目,其中有一个名为CTest的类,该类包含如下所示的方法

公共函数vbConcat(ByVal a作为字符串,ByVal b作为字符串)作为字符串vbConcat =a&b结束函数

并且在VBTestLib项目属性中将项目名称设置为VB6,并将项目编译为F:\proj\VB6\ActiveXDLL\VBTestDLL.dll。

您需要使用Windows命令regsvr32 F:\proj\VB6\ActiveXDLL\VBTestDLL.dll注册dll

现在您的C++代码:

#使用命名空间F:\proj\VB6\ActiveXDLL\VBTestDLL.dll导入“VBTestLib”;

::OnButton1 1(){

代码语言:javascript运行复制 HRESULT hresult;

CLSID clsid;

_CTest *t; // a pointer to the CTest object

_bstr_t bstrA = L"hello";

_bstr_t bstrB = L" world";

_bstr_t bstrR;

::CoInitialize(NULL);

hresult=CLSIDFromProgID(OLESTR("VBTestLib.CTest"), &clsid);

hresult= CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,

__uuidof(_CTest),(LPVOID*) &t);

if(hresult == S_OK)

{

bstrR = t->vbConcat(bstrA , bstrB);

AfxMessageBox((char*)bstrR);

}}

就这样,开始吧。