发新话题
打印

vb调用vc编写的dll遇到的错误

vb调用vc编写的dll遇到的错误

各位大虾,小弟在用vb调用vc编写的dll是遇到了错误,渴求帮帮忙:

vc中代码:
dll3.h:
#ifdef DLL3_EXPORTS
#define DLL3_API __declspec(dllexport)
#else
#define DLL3_API __declspec(dllimport)
#endif

// This class is exported from the dll3.dll
class DLL3_API CDll3 {
public:
        CDll3(void);
        // TODO: add your methods here.
};

extern DLL3_API int nDll3;

DLL3_API short fnDll3();/////////////////////////我主要用它

extern DLL3_API short __stdcall sample();


dll3.cpp代码:
#include "stdafx.h"
#include "dll3.h"

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                                         )
{
    switch (ul_reason_for_call)
        {
                case DLL_PROCESS_ATTACH:
                case DLL_THREAD_ATTACH:
                case DLL_THREAD_DETACH:
                case DLL_PROCESS_DETACH:
                        break;
    }
    return TRUE;
}


// This is an example of an exported variable
DLL3_API int nDll3=0;

// This is an example of an exported function.
DLL3_API short fnDll3()
{
        return 42;
}

// This is the constructor of a class that has been exported.
// see dll3.h for the class definition
CDll3::CDll3()
{
        return;
}

DLL3_API short __stdcall sample()
{
return 10;
}

生成的dll3.dll  放入system32目录下;

vb中的代码:

Option Explicit
Private Declare Function fnDll3 Lib "dll3.dll" () As Integer

Private Sub Command1_Click()
Dim i As Integer
i = 12
i = fnDll3          //////////////
MsgBox i
End Sub


错误提示:  can't  find Dll entry point fnDll3 in dll3.dll

都愁死我了,恳求大虾们帮帮忙,
期待中......
万分感谢~

TOP

错误提示是没有找到fnDll3入口。
这样声明试试
Public Declare Function fnDll3 Lib "dll3.dll" Alias "fnDll3 " () As Integer

另外,你的DLL好像有问题,最好你用VC的动DLL向导生成一下DLL。
还有,注意*.def文件的位置。
换个头像,看见广告就眼红,直接封ID。

TOP

发新话题