我已经做了一个DLL,但当我在VB中调用时,出现一个错误提示,我不知道该怎么解决,请高手赐教。Dll 中函数如下:
int mun(int a,int b){
  return(a+b);
}提示如下:
can't find DLL Entry Point mun in "c:\temp.dll"
大概的意思是说没有调用入口,请高手指教。

解决方案 »

  1.   

    __declspec(dllexport) int mun(int a,int b){
      return(a+b);
    }
    就可以了
      

  2.   

    tell me ur email address i will send a sample to u
      

  3.   

    [email protected] 拜托楼上的朋友了。
      

  4.   

    增加一个.def的文件内容如下:
    LIBRARY      "DllName"
    DESCRIPTION  'VoiceMail Windows Dynamic Link Library'EXPORTS
        mun           @1
      

  5.   

    建一个def文件试试
    LIBRARY yourdll
    EXPORTS
      mun  @1
      

  6.   

    试试:
    extern "C" int __declspec(dllexport) mun(int a,int b){
      return(a+b);
    }
      

  7.   

    VB中你是怎么调用的?好像先要declare一下的吧.
      

  8.   

    这次出现了另一个错误
    Bad Dll Calling Convention
      

  9.   

    重建一个工程。
    MFC AppW(Dll),一定不能选上 MFC Extension Dll,其他的均可。
      

  10.   

    我没有选MFC Extension Dll,我选得是Win32 Dll
      

  11.   

    这次调用的时候出现了这个错误提示:Bad Dll Calling Convention再次请各位帮忙,谢谢
      

  12.   

    宣布时这样宣布extern "C" {
      int __stdcall mun()
    }实施函数 int __stdcall mun();在*.def文件中定义输出函数 ,不要使用__declspec(dllexport)
      

  13.   

    注意,在vb声明调用得时候,也要使用stdcall调用约定,与dll保持一致。
      

  14.   

    Declare Function num Lib "c:\sha.dll" (ByVal a As Integer, ByVal b As Integer) As Long
      

  15.   

    这是因为你的dll中没有提供入口点的信息。可以这样:
    到vc工程中,找到xxx.def文件,在其中添加上你的mun函数的声明eg.EXPORTS
        mun @1
    ; Explicit exports can go here应该就可以了。
      

  16.   

    请教楼上,我是新手,怎么样新建一个def文件
      

  17.   

    我已经在def文件中写了,可是还是不行,是什么原因。
      

  18.   

    还是同样的错误吗?错误信息是什么?-- 贴一下...也许...确认你使用的是最新的dll...其它的,(-用__stdcall还是用__declspec(dllexport/dllimport) -)正像前面兄弟们所说的那样。
      

  19.   

    其它程序调用vc编写的dll的注意事项:
    1、尽量采用def文件的形式来输出函数。不要使用__declspec(dllexport/dllimport)这一类的宏定义。
    2、如果是C++编写的dll,在函数声明的时候要使用extern "C",保证编译后的代码是采用c的命名方式。
    3、输出函数一定要使用__stdcall调用约定。