VB调用VC的dll异常~异常代码48~dll加载不成功~呜呜求大神指导~感激涕零

VB调用VC的dll错误~~错误代码48~dll加载不成功~~呜呜求大神指导~感激涕零
用vc做了一个dll,给vb调用,一开始在我电脑上是好的,转到做VB的那人电脑上调用就不行了,始终报错48.

1,首先可以肯定,dll的地址设置正确
2,我用查看dll的插件depends打开了dll,里面相关的dll都是正常显示,没有缺失任何的dll.

vc的代码大体如下:

#include "StdAfx.h"
#include "test.h"
#include "cv.h"
#include "highgui.h"
#include "SiftGxyView.h"
#define M_SIFT_YUZHI 1

int nCount = 0; //nCount 统计数据库中样本图片的数量
char   *buf=NULL; 
CString taibiao_result="";//
CDatabase DBCON;
CString DSN = "ODBC;DSN=TVLogo";// ODBC中添加数据源的名称
CRecordset m_rSet;
CString m_strsql;
extern "C" CPoint EXPORT _stdcall  CStingToPoint(CString strTemp) 
{
。。。。
}

extern "C" int EXPORT _stdcall  SIFT(IplImage* pic1 = NULL,IplImage* pic2 = NULL) {
。。。
。。。
}


extern "C" BSTR EXPORT _stdcall   CheckPhoto(char *path_taibiao1=NULL) 

{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
  
nCount=0;
CString path_taibiao=path_taibiao1;//
if (path_taibiao=="") 

。。。。
。。。

m_rSet.Close();
DBCON.Close();
buf   =   (LPSTR)(LPCTSTR)taibiao_result;
return (BSTR)buf;
return NULL;
}

希望能得到大神们的赐教~~~

------解决方案--------------------
vb、vc的dll到底是怎么协议,俺一直也没搞清楚,以前自己用的时候,没在dll中用CString做过参数,也没有使用过 参数 = NULL这种方法。
------解决方案--------------------
CString是MFC类,VB中不支持吧
------解决方案--------------------
引用:
引用:

个人经验:跨语言传递信息最好用共享临时文本文件的方法。
你是说不返回参数给VB,而是把返回值保存到一个临时文件?那VB怎么知道VC计算完,结果已经保存到文件里了?

VB可以尝试独占打开结果文件,成功就说明VC计算完了。
参考
Private Sub Command1_Click()'找出文件夹内文件最新的更新时间(包括里面的子文件夹的文件哈) 要把这个文件夹内的所有文件的最后修改时间都要检查一次,并取出近的一个时间,(主要是检查这个文件夹里面的内容有没有更新),并取出这个文件最后一次的更新时间.环境是VB6
Dim after As Double
Dim f As Integer
Dim dn As String
Dim fn As String
Dim ft As String
Dim ft_date As Date
Command1.Enabled = False

On Error GoTo ERR0
Kill "c:\files.txt"

dn = "c:\windows"
On Error GoTo ERR1
Shell ("cmd /c dir " & dn & "\*.* /a-d /b /s /o-d >c:\files.txt")
after = Now + 60# / 3600# / 24#
f = FreeFile()
Do
REOPEN1:
    DoEvents
    If Now > after Then
        MsgBox "Wait c:\files.txt 60s overtime!"
        Exit Sub
    End If
    Open "c:\files.txt" For Input Lock Read Write As #f
    Line Input #f, fn
    Close #f
    Exit Do
Loop

On Error GoTo ERR0
Kill "c:\files.txt"

On Error GoTo ERR2
Shell ("cmd /c dir " & Chr(34) & fn & Chr(34) & ">c:\files.txt")