首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

十豆三大哥,关于VFP调用C++写的DLL的有关问题续

2013-03-06 
求助十豆三大哥,关于VFP调用C++写的DLL的问题续根据你提供的方法,的确有几个函数能调用成功,可有的却不成

求助十豆三大哥,关于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

热点排行