求助十豆三大哥,关于VFP调用C++写的DLL的问题续
根据你提供的方法,的确有几个函数能调用成功,可有的却不成功,还请多多指点。
有这么个函数
LinkConnect
声明: long LinkConnect ();
说明: 连接控制卡
参数: 无
返回值: 返回0连接成功
备注: 必须在OpenPort函数调用成功后才能使用
示例:
VB:
Private Sub CConnect_Click()
Dim Res As Long
Res = LinkConnect ()
MsgBox Res
End Sub
VC:
private bool Link()
{
char* ip="192.168.0.100";
if(OpenPort(ip,1001)==0)
{
if(LinkConnect()==0)
{
res=true;
this->SetTimer(m_Timer,100,0);
m_Linked=true;
}
}
if(res==false)
{
MessageBox("对不起,连接控制卡失败!","提示");
m_Linked=false;
}
return res;
}
------------------
链接控制卡需要先打开端口
我写的代码如下;能打开端口,却不能链接控制卡。
Declare Long OpenPort In V6LinkDll.dll String IP
If OpenPort("'192.168.0.200',1001")=0
Messagebox("打开控制卡端口",64,"信息提示")
Else
Messagebox("端口打开失败!",48,"信息提示")
ENDIF
Declare LONG LinkConnect In V6LinkDll.dll
IF LinkConnect() = 0
Messagebox("链接成功",64,"信息提示")
Else
Messagebox("链接失败!!!!.",48,"信息提示")
ENDIF
-------------------------- c++ dll
[解决办法]
OpenPort函数应该这么用吧
Declare Integer OpenPort In V6LinkDll String @,Integer
If OpenPort('192.168.0.200',1001) == 0
Messagebox('打开控制卡端口',64,'信息提示')
Else
Messagebox('端口打开失败',48,'信息提示')
Return
Endif
Clear
lnA1=8
lnB1=9
?MyTest(lnA1,lnB1),lnA1,lnB1
?MyTest(@lnA1,lnB1),lnA1,lnB1
Function MyTest
Lparameters tnA1,tnB1
tnA1=tnA1*tnB1
Endfunc