很是着急,试了半天都不行,谢谢 !!!!!!!!!!

解决方案 »

  1.   

    可以用VC开发工具编写标准的win32动态库,或者利用MFC库编写,在函数名前一定要加一个标识字“__stdall"
      

  2.   

    可以用VC开发工具编写标准的win32动态库,或者利用MFC库编写,在函数名前一定要加一个标识字“__stdcall",注意一定要导出函数。
      

  3.   

    可以用VC开发工具编写标准的win32动态库,或者利用MFC库编写,在函数名前一定要加一个标识字“__stdcall",注意一定要导出函数。
      

  4.   

    如果是学习写标准的DLL,可以用VC的MFC AppWizard(dll)向导生成一个工程,假设名为DllTest。
    1. 在DllTest.cpp中为DLL添加导出函数,语法为:extern "C" BOOL PASCAL EXPORT DoHelp()
    {
        AFX_MANAGE_STATE(AfxGetStaticModuleState());
        // normal function body here
        ::MessageBox(NULL,"Hello World!","MSG",MB_OK);
        return TRUE;
    }
    使用extern "C"语法可以让C++程序模块和其他语言共享数据和方法。2. 在DllTest.def中指定该函数为导出函数,也就是标准DLL为其他程序开放的接口函数。语法为:
    EXPORTS
        DoHelp
        ; Explicit exports can go here3. 编译。这样在其他程序中就可以调用这个DLL了。
    在VB中的调用:
    首先声明:
    Private Declare Sub DoHelp Lib "h:\DllTest.dll" ()
    因为测试DLL中的DoHelp函数没有返回值,所以在VB中,声明为sub。然后调用:
    Private Sub Command1_Click()
       DoHelp
    End Sub
      

  5.   

    File->New->Projects->Win32 Dynamic-link library->A DLL that exports some symbols
    File->New->Files->TextFile->查入a.def文件不可少)
    a.def的内容编辑如下:
    LIBRARY          "a"
    DESCRIPTION     'a.dll'  
    EXPORTS
      funA
    在a.h中
    int WINAPI funA(int x,int y);
    在a.cpp中
    int WINAPI funA(int x,int y)
    {
    return x*y;
    }
    编译成a.dll->copy a.dll c:\windows\system
    在vb的Modules(不能在form中)中声明如下:
    Declare Function funA Lib "c:\windows\system\a.dll" (Byval x as integer,Byval y as integer) as integer