如何使用DLL,请指教
我最近在用BCB5.0写DLL,第一次使用。感觉有很多疑惑,请各位指教。我的DLL原本如下:
extern "C" __declspec(dllexport) int __stdcall test();
extern "C" __declspec(dllexport) int __stdcall test1(int iTmp);
int __stdcall test()
{ return 3; }
int __stdcall test1(int iTmp)
{ return iTmp; }
test仅仅返回一个常数,test1发挥参数的值。
我的调用函数如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HINSTANCE dd;
int _stdcall (*ddd)(void);
int _stdcall (*aaa)(int iTmp);
String sTemp;
dd = LoadLibrary("dll.dll");
ddd = GetProcAddress(dd , "test");
//----------------------
aaa = GetProcAddress(dd , "test1");
//----------------------
ShowMessage((int)GetProcAddress(dd , "test1"));
Caption = IntToStr(ddd());
FreeLibrary(dd);
}
在aaa.....这一句编译报错,无法通过。但是GetProcAddress(dd , "test1")已经得到了地址,这是为什么?
假如一个DLL里的函数要从外部得到参数,经过处理后以各种类型返回如何处理?比如int , long , String , AnsiString等等。最好能给一个详细地说明,谢谢!