با سلام.
من می خوام یک تابع رو که به زبان دیگه نوشته شده رو جدا گانه کامپایل کنم و ازش تو برنامه c++استفاده کنم.
برای این کار از دو قطعه کد زیر استفاده میکنند.اما من نتونستم درکش کنم.
اگر میشه توضیحاتی در موردشون بهم بدین.
من می خوام یک تابع رو که به زبان دیگه نوشته شده رو جدا گانه کامپایل کنم و ازش تو برنامه c++استفاده کنم.
برای این کار از دو قطعه کد زیر استفاده میکنند.اما من نتونستم درکش کنم.
اگر میشه توضیحاتی در موردشون بهم بدین.
کد:
void __fastcall TMainForm::ShowFormButtonClick(TObject *Sender){/* function pointer */typedef void(__stdcall *PROC)(void);/* you also need a variable of type PROC */PROC proc;HMODULE lib = LoadLibrary("MyDLL.dll");if(lib != 0){proc = (PROC)GetProcAddress(lib, "VCL_Form");if(proc != NULL) {proc(); /* call the function */} else {ShowMessage("VCL_Host() cannot be found!");}FreeLibrary(lib);}else{ShowMessage("LoadLibrary failed!");}}
کد:
#include <vcl.h>#include <windows.h>#pragma hdrstopextern "C"{__declspec(dllexport) void __stdcall VCL_Form(void);};#pragma argsusedint WINAPI DllEntryPoint(HINSTANCE hinst,unsigned long reason, void* lpReserved){return 1;}//---------------------------------------------------------------------------void __stdcall VCL_Form(void){TForm* f = new TForm(Application);try{f->Caption = "VCL Form in a C++ DLL";f->ShowModal();}__finally{delete f;}}