C语言编辑的API函数如下:
int SOCKconnect(char*hostip,unsigned short port)
用于建立与SOCKEDT的连接。
VB中的申明为:
Public Declare Function SOCKconnect Lib "d:\socketapp\socketap.dll" (ByVal HostIP As String, ByVal Port As Integer) As LongVB程序为:
Dim HostIP As string
Dim Port As integer
dim connectok as longHostIP = "100.238.163.144"
Port = 6300
connectok=SOCKconnect(HostIp, Port)
执行程序,又提示出这样的错误:
“文件未找到: d:\socketapp\socketap.dll”
但我可以确认这个路径下有这个dll文件。
那原因何在呢?

解决方案 »

  1.   

    vc需要将函数接口暴露,供其它调用
    如:c++ builder中
      extern  "C"  __declspec(dllexport)  int  Hosp_Connect(char  *pUid,char  *pPwd); 
      extern  "C"  __declspec(dllexport)  int  Hosp_DisConnect(void); 
    导出接口函数,其他的语言才能够调用照下面的试
    Public Declare Function SOCKconnect Lib "d:\socketapp\socketap.dll" Alias "#1" (ByVal HostIP As String, ByVal Port As Integer) As Long
      

  2.   

    唉,是不是又是老问题,你这个dll用到的dll没有放好啊
      

  3.   

    to  online(龙卷风V2.0--再战江湖) 
    我试着用你提供的语句:
    Public Declare Function SOCKconnect Lib "d:\socketapp\socketap.dll" Alias "#1" (ByVal HostIP As String, ByVal Port As Integer) As Long
    但执行后,出现同样的错误提示:“文件未找到: d:\socketapp\socketap.dll”
    请帮忙再找找原因,多谢!!
      

  4.   

    to supergreenbean(超级绿豆 - 放暑假了):
     我把这个dll文件放在应用程序所在的路径中,出现那种错误提示,然后我又将dll文件放在system32目录中,同样出现那种错误提示。
      依你之见,应该如何去放。
      另外第三方在提供dll文件时,还提供了2个.h文件和1个.lib文件.
        .h文件我在VB中申明了,那么.lib文件应如何处理,它与我的这个运行错误有关吗?
      

  5.   

    你要不把dll发给我看看,[email protected]我估计是你dll用到的dll文件没有
      

  6.   

    根据头文件来看,那个dll似乎不是__stdcall调用约定的。要么用c写个中间代理的dll,要么用我上次写的那个什么vbanycall类试试