这个vc写的dll在vb里该如何调用?

来源:百度知道 编辑:UC知道 时间:2024/09/20 11:01:24
extern "C" __declspec(dllexport) void * __cdecl CreateCSocket(const GUID & Guid, DWORD dwInterfaceVer)
{
//建立对象
CClientSocket * pClientSocket=NULL;
try
{
pClientSocket=new CClientSocket();
if (pClientSocket==NULL) throw TEXT("失败");
void * pObject=pClientSocket->QueryInterface(Guid,dwInterfaceVer);
if (pObject==NULL) throw TEXT("失败");
return pObject;
}
catch (...) {}

//清理对象
SafeDelete(pClientSocket);
return NULL;
}

这个如何在vb里调用啊?
这个dll只有一个函数输出CreateCSocket
const GUID & Guid 这个是什么意思啊?
还有这个CreateCSocket返回的是布尔型吗?

在VB里这样声明:
Private Type guid
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type

Public Declare Function CreateCSocket Lib "DLLNAME.dll" Alias "_CreateCSocket@8" (ByRef Guid As guid, ByVal dwInterfaceVer As Long) As Long

什么是GUID ,看这里:http://baike.baidu.com/view/185358.htm
CreateCSocket返回的是一个32位的指针(void *)

首先,你的DLL不能是扩展DLL。

其次,通用的DLL不分啥语言写的,调用同调用其它类型的DLL