通常我在vb中调用api函数都是使用API文本浏览器
它可以加载APILOAD.TXT,MAPI32.TXT,WIN32API.TXT
而且使用起来确实不错,知道api函数名只要复制就可以使用了
但是最近发现另外一些问题,比如一些api函数或者一些常量类型在其中找不到
比如: 
     Private Declare Function gethostname Lib "WSOCK32.DLL" (ByVal hostname$,ByVal HostLen as Long) as long 
     Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal _ 
     hostname$) As Long 
     这两个函数就无法找到
我仔细看过,可能它们的lib 是WSOCK32.DLL
而API文本浏览器中很多函数的lib是user32.dll
不知道是否是这个原因
还请问有其它的加载api函数的方法吗?

解决方案 »

  1.   

    vb的API浏览器是有很多(不是只有一些)API函数是找不到的。要用这些函数可以到网上去找相应的API的工具,我这有个API-Guide的工具软件还可以。另外也可以用函数名为关键字在网上搜索,一般也可以找到原形申明。另外,可以通过MSDN找,也是用函数名找,如果找到VC的申明方式,就相应的把它转化为VB的方式就可以了。
        对于常数就没有办法了,可以到VC的头文件中去慢慢找相应的头文件,可以找到常数的申明。
      

  2.   

    方法一:将wsock32.dll文件Copy到系统目录,win2000下为\Winnt\System,这样上面的声明语句就可以用了。
    方法二:在声明语句中写入引用Dll文件的路径名。
      

  3.   

    噢,大概明白了一些
    原来那个API浏览器不是万能的啊我还以为什么api函数都可以找到呢?
    不过你所说的api的工具是否就像API浏览器一样可以直接复制来使用api函数呢?
    还有api-guide工具是一个软件吗?哪有下载的
    “外也可以用函数名为关键字在网上搜索,一般也可以找到原形申明。”你所说的这个方法也确实不错,很管用:-)
    "可以通过MSDN找"这个就不知道怎么来找了?我对MSDN不是很熟悉啊
    最后一个问题,“如果找到VC的申明方式,就相应的把它转化为VB的方式就可以了”,请问这里如何将vc的申明方式转化为vb的方式呢?能否给个简单易于理解的例子呢
    非常感谢
      

  4.   

    我搜索到的wsock32.dll就在c:/WINNT/system32目录下面啊
    那是否我上面的声明函数语句要手工输入进去呢?能否复制粘贴啊
    还有你的方法二意思是否如下:
    Private Declare Function gethostname Lib "c:/WINNT/system32/WSOCK32.DLL" (ByVal hostname$,ByVal HostLen as Long) as long 
    请详细说说谢了
      

  5.   

    方法一中应copy到c;\winnt中(系我笔误,抱歉)。
    方法二是没有问题的,你上面帖子里路径的斜杠写反了(\),当然不行了。
    至于API查询器找不到的API函数只能手工添加了,其实大量的由厂家开发产品的API函数都要这样做,当然,你得搞清楚它的参数声明,否则一样用不了。
      

  6.   

    VB 的 API VIEW 不全的, 建议 BUY API 程序员参考手册
      

  7.   

    大家讨论一下
    目前情况下最好的api工具是不是api-guide呢
    我已在http://www.allapi.net上载下来了
    需要的朋友可以去看看啊
    谁知道还有其他的api工具请说吧资源共享啊
    我 觉着最好是有api函数的中文注释的并有各个参数的解释
    这样用起来比较顺利大家说对吧