CyTangTP.dll共提供三个函数,此文件拷贝在运行目录下。
在VB环境下声明如下:
在Module1中定义动态库函数;
Declare Function OpenComm Lib "CyTangTP.dll" (ByVal ComNo As Integer, ByVal Baud As Integer) As Long
Declare Function CloseComm Lib "CyTangTP.dll" (ByVal Handle_Of_Com As Long) As Integer
Declare Function SendMsg Lib "CyTangTP.dll" (ByVal Handle_Of_Com As Long, ByVal TPSet As String, ByVal Msg As String) As Integer
现在,我们要在VC中调用这三个函数,实现代码如下:
HMODULE module = LoadLibrary("CyTangTP.dll");
typedef long (CALLBACK* pOpen)(int, int);//注意这里
typedef long (CALLBACK* pSend)(long,CString,CString);//注意这里
typedef int (CALLBACK* pClose)(long);//注意这里

if (module)

...{
//调用OpenComm
pOpen Open = (pOpen)GetProcAddress(module,"OpenComm");
long port;
if(Open!=NULL)

...{
port = Open(1,9600);
MessageBox("Open");
}
else
return;

//调用SendMsg
pSend Send = (pSend)GetProcAddress(module,"SendMsg");
int nSend = 1;
if(Send!=NULL)

...{
nSend = Send(port,"0,20,2,1,1,1,1,0,1","RabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN12345678901234567890欢迎光临东方信通科技");
CString str;
str.Format("%d",nSend);
MessageBox(str);
}
//调用CloseComm
pClose Close = (pClose)GetProcAddress(module,"CloseComm");
int nClose;
if(Close!=NULL)

...{
nClose = Close(port);
CString str;
str.Format("%d",nClose);
MessageBox(str);
}

FreeLibrary(module);
}