载入有*.res的dll文件问题,非高手们莫进(50分)

  • 主题发起人 主题发起人 drinven
  • 开始时间 开始时间
D

drinven

Unregistered / Unconfirmed
GUEST, unregistred user!
[green]我在c++ builder编的dll中有下面代码:
TResourceStream *GBKTAB = new TResourceStream(Instance,"GBK2BIG",RT_RCDATA);
即调用了资源文件。程序编译成功,而且在c++ builder中调用这个dll文件成功,但在vb中
调用时就出现异常错误(一加进这句代码就错,不加就不错),是什么原因呢?
是不是在vb不可以调用这个装有*.res的dll文件?
高手们,大虾们,前辈们,朋友们,大家高抬贵手,帮帮忙啊!救急啊!
谢谢诸位![/green]
 
VB中怎么调用?
 
具体如下:
//-----------------下面是c++ builder中的生成dll的代码------------------------------------------
#include <vcl.h>
#include <windows.h>
#include <ADODB.hpp>
#include <SysUtils.hpp>
#include <dstring.h>
#pragma hdrstop
#pragma resource "test.res"
//---------------------------------------------------------------------------
#pragma argsused
THandle Instance;
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) BSTR __stdcall test(const char* c);
//---------------------------------------------------------------------------
__declspec(dllexport) BSTR __stdcall test(const char* c)
{
//就是下面这句让我头痛,当我把这句代码注析掉时,在vb中调用就成功,不注析掉时就错误,整个程序就瘫痪了(但在c++ builder中调用成功);
//TResourceStream *GBKTAB = new TResourceStream(Instance,"GBK2BIG",RT_RCDATA);
//delete GBKTAB;
//...
return AnStr2BSTR("none");//自定义函数
}

//下面是VB中调用代码
'Module中声明
Declare Function test Lib "D:/0_Res_harvest/GB2312-BIG5/dll/project1.dll" (ByVal c As String) As String
'Form code
Private Sub Command2_Click()
RichTextBox2.Text = test(RichTextBox1.Text) //没有实际意义只为测试
End Sub
 
后退
顶部