我编译成。EXE文件后,直接执行可执行文件就没问题,这是什么原因?

解决方案 »

  1.   

    可能是参数调用约定的问题,在C函数前调用约定__Stdcall
      

  2.   

    //*.def
    EXPORTS a//*.cpp
    long _stdcall a (long x, long y)
    {
        return x+y;
    }//vb[model1]
      Public Declare Function a Lib "E:\vbwindlltest\windll.dll" (ByVal x As  Long, ByVal y As Long) As Long[form1]
      Private Sub Command1_Click()
          Dim i As long
          i = a(1, 2)  End Sub
      

  3.   

    to xsbchen(我最酷),我试了一下,你的方法是正确的。为什么我的方法不行,还有_stdcall的作用是什么,因为我刚接触VC,所以有很多不懂的地方,请赐教。
      

  4.   

    最重要的是数据类型不同 LONG 和 INT 有区别
      

  5.   

    我同意glite(zgq)的说法,在vc中定义成int型,VB中用long  int a(int x,int y)  Public Declare Function a Lib "E:\vbwindlltest\windll.dll" (ByVal x    As  Long, ByVal y As Long) As Long
      

  6.   

    应该主要的不是数据类型的问题,我的代码中已将vc中的int型该成VB中的long型,还是不行,我想主要是加了_stdcall关键字