我在VC中开发了一个动态连接库如下:
1. 在SetDB.h中导出函数如下:
   extern "C" __declspec(dllexport) void OpenDB(char* strDBPath);
2. 在SetDB.cpp中实现导出函数如下:
   extern "C" __declspec(dllexport) void OpenDB(char* strDBPath);
   {
       WCHAR wFile[128];   // 将其转换为LPCWSTR
       MultiByteToWideChar(CP_ACP, 0, strDBPath, -1, wFile, 128);
       ... ...
    }
3. 在SetDB.def中导出如下:
   ... ... 
   EXPORTS
       InitDB @1
       OpenDB @2
       CloseDB @3
       ... ...我在VB中调用如下:
1. 首先申明DLL的输入函数如下:
   Option Explicit
   Private Declare Sub InitDB Lib "MyDB.dll" ()
   Private Declare Sub CloseDB Lib "MyDB.dll" ()
   Private Declare Sub OpenDB Lib "MyDB.dll" (ByVal strDBPath As String) 
   ... ...
2. 在OPENDB按钮的Click动作函数调用中调用如下:
   Private Sub Command00_Click(Index As Integer)
   InitDB                       // ok
   Dim strDBPath As String
   strDBPath = "C:\myDB"
   OpenDB strDBPath             // 此处报错,实时错误'49',DLL调用约定错误
   End Sub   大侠们!!! 发表您们的高见吧!!!为什么会报参数错???
如果我在VB中使用ByRef,错误依然存在,一样的.
而在VC中调用没有任何问题啊!