能否不使用.def文件中定义的函数序号,直接使用GetProcAdddress根据函数名调用dll中的函数?
能或者不能请将原因说详细一点。

解决方案 »

  1.   

    能::LoadLibrary(m_cszModName);
    GetProcAddress(m_hModule, lpszFuncName);
      

  2.   

    能::LoadLibrary(m_cszModName);
    GetProcAddress(m_hModule, lpszFuncName);
      

  3.   

    typedef (__stdcall *FUNC)(......)
    当然可以,定义函数类型的时候加上__stdcall限定符
      

  4.   

    使用_stdcall后函数名在dll中会发生改变,如何在不知道改变后的函数名的情况下调用
    我写的一个很简单的dll中有一个函数是add(int x,int y)
    用vc6.0的Dependency walker查看函数名变为了_add@8,使用add作为函数名调用时是找不到函数的,必须使用_add@8作为函数名,有什么方法可以只使用add来调用函数。
      

  5.   

    主工程调用的
    extern "C" typedef void (*LPFN_EXTNOTIFY)(int ,int);
    dll中的调用
    extern "C"  void add(int , int)
      

  6.   

    函数必须使用_stdcall修饰
    使用_stdcall修饰后,使用extern "C"不能阻止函数名发生变化。