创建基于MFC的程序,直接调用就行了,不需要VB中冗长的Public Declare Function ......

解决方案 »

  1.   

    如果我要调用的.dll不是标准的API,没有相应的.h,那末我是不是就应该自己声明一下了?
    这时该怎样声明?和VB的一样吗?
      

  2.   

    dll中函数这样定义 extern "C" BOOL __declspec(dllexport) myfunc(LPCTSTR* pData);Exe中申明并包含相应的.lib:
      BOOL __declspec(dllimport) myfunc(LPCTSTR* pData);  就可以直接调用了。
      

  3.   

    首先要谢谢你,但我还是有许多不明白的。
    如果.dll不是自己写的呢?比如说以有的一个123.dll中有一个int aaa(int a)。我该怎么声明?
    如果连.dll的文件名都不确定,需要动态链接又该怎么办?
      

  4.   

    这就是为什么许多需要注册缴费的ocx或dll给你试用版的原因。你当然无法调用,但可以通过Dump等手段来看一个dll中有哪些函数。
      

  5.   

    你和我初学的时候一样,我也是先学VB再学VC的!
    VC已经把初学者常用的API函数封装在MFC类库里,一般很少自己去dll文件里找函数。与其从VB的编程基础去理解VC,倒不如从C++的思路去理解,会更容易的多。
      

  6.   

    如果是标准API(如LoadLibrary()),可以直接调用.
    否则,要把dll对应的.lib和.h包含进来
      

  7.   

    连打两个冒号,API函数任你选。
      

  8.   

    在MFC编程中,API函数可以随便用的呀!只要加了::就行:)
      

  9.   

    在MSDN里查找API对应的头文件和库,在程序中包含此头文件,在连接选项中加入库文件(*.lib)
    没有头文件和库的dll用LoadLibrary加载dll,再用GetProcAddress取得函数指针,具体的去看MSDN
      

  10.   

    你们说的都是mfc,在sdk编程里面,什么麻烦都没有了,连冒号都省了,因为,毕竟c与windows最亲密,而api又是属于windows的
      

  11.   

    API直接就可以调用啊!
    你只要加入#include <Windows.h>就可以了,VC自动连接相应的库.lib,
    如果是其他的,或没有Header文件、库等,则要调用LoadLibrary,GetProcAddress等了。
    不过一般用不到的!
      

  12.   

    如果是是关于WIN32 API编程,那么你只需要加入#include <windows.h>,大致有GDI32.LIB,USER32.LIB,KERNEL.LIB;若要调用其他库中的API函数,则需另外加入其他的库,如:要调用TAPI.DLL中的函数,就要在自己的文件中加入#include <TAPI.H>;
        如果是MFC编程,那么可直接调用.
      

  13.   

    是不是说:如果有一个.dll文件是别人写好的,我知道里面有什么函数,但是这个.dll不是标准的API也没有相应的.h、.lib。那么我就不能够调用了?
      

  14.   

    当然,若只有DLL文件而没有H文件,这显然是不行的;但是,这种可能性很小:)