CLX,中的dll调用问题,帮忙看看!(50分)

  • 主题发起人 主题发起人 icuc88
  • 开始时间 开始时间
I

icuc88

Unregistered / Unconfirmed
GUEST, unregistred user!
一个Clx的程序,其中调用了dll
但是总是qtintf.dll出错:(
说什么read AboutBox->Caption错了:(
...Error reading AboutBox->Caption:Access violation at....in module 'QTINTF.DLL'...
妈的,什么地方错了?
如果我改为Package, Form可以显示,但是UnloadPackage就出问题了:(
各位老大,帮忙看看什么地方出问题了?
//下面是主程序里面的一个声明和调用
//MainForm.h
class TMainF : public TForm
{
...
private: // User declarations
typedef void __declspec(dllimport) TShowMyForm(TApplication *CallApp);
TShowMyForm *_ShowMyForm;
...
}
//MainForm.cpp
void __fastcall TMainF::AboutActExecute(TObject *Sender)
{
const AnsiString ABOUT_DLL = "about.dll";
HINSTANCE Package = LoadLibrary(ABOUT_DLL.c_str());
if (Package)
{
_ShowMyForm = (TShowMyForm *)GetProcAddress(Package, "_ShowAboutForm");
if (_ShowMyForm)
{
_ShowMyForm(Application);
}
else
{
ShowMessage(SysErrorMessage(GetLastError()));
}
FreeLibrary(Package);
}
else
{
ShowMessage(SysErrorMessage(GetLastError()));
ShowMessage("Unable to load the Package.");
}
}
//下面是about.dll
//aboutFrom.h
...
extern "C"
void __declspec(dllexport)ShowAboutForm(TApplication *CallingApp);
...
//aboutForm.cpp
....
void ShowAboutForm(TApplication *CallingApp)
{
Application = CallingApp;
TAboutBox *_AboutBox = new TAboutBox(Application);
try
{
_AboutBox->ShowModal();
}
__finally
{
delete _AboutBox;
}
}
....
 
没有人知道吗?我在线等待呀:(
 
是不是你的计算机上没有qtintf.dll文件,可以复制qtintf.dll文件到
程序的根目录下试试
 
不知我说的对不对
DLL是Windows下的东西,
而CLX是为了跨平台在Linux和Windows上运行设计的。
可能在Linux下使用DLL吗?否
所有在Windows下编译也应该过不去。
如果在WIndows下过去了,哪么拿到Linux下编时???????@@@@@@@
 
to yanghai0437: 肯定有那个文件的!!!
to spymaster: 我的东西现在是在windows下面用,dll也可以在kylix下面重新编译变为
linux下面可以用的东西吧?我的dll是用的c++/clx.
to all:我的程序编译链接成功了的!就是调用的时候错!
 
后退
顶部