Home > database >  PB call homemade DLL, can run normally, but in the end PB collapse
PB call homemade DLL, can run normally, but in the end PB collapse

Time:10-18

This is written by BCB a DLL file, call he can normal execution, execution, PB collapse,
I see the DLL is written standards, master to help see,
Pb statement function int Encrypt (String Str_dwmc, String Str_mac, String Str_Proname, String Str_outdat, String Str_count, ref String Str_ret)
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# include & lt; The VCL. H>
# include & lt; Windows. H>
# pragma hdrstop
String str_code="1234567890";

# pragma argsused
Extern "C" __declspec (dllexport) __stdcall int Encrypt (char * Str_dwmc, char * Str_mac, char * Str_Proname, char * Str_outdat, char * Str_count, char * Str_ret);

Int WINAPI DllEntryPoint (HINSTANCE hinst, unsigned long reason, void * lpReserved)
{
return 1;
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Char * __stdcall DesEn (*) (char *, char *);
Char * __stdcall DesDe (*) (char *, char *);

//encryption function -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__declspec (dllexport) __stdcall int Encrypt (char * Str_dwmc, char * Str_mac, char * Str_Proname, char * Str_outdat, char * Str_count, char * Str_ret)
{
HINSTANCE myDLL;
String Str_dwmc1;
String Str_mac1;
String Str_Proname1;
String Str_outdat1;
String Str_count1;
String str_ret1;
Str_dwmc1=Str_dwmc;
Str_mac1=Str_mac;
Str_Proname1=Str_Proname;
Str_outdat1=Str_outdat;
Str_count1=Str_count;
String str_code2;
String str_out;
String str_out2;
Int int_ret;
Str_ret1="";
Str_out="OUT".

Str_ret1=Str_dwmc + "00 (@)";

MyDLL=NULL;
MyDLL=LoadLibrary (" BYSDC. DLL ");
If (myDLL!=NULL)
{
FARPROC P;
P=GetProcAddress call (myDLL, "DesEn");
If (P!=NULL)
{
Try {
DesEn=(char * __stdcall (__cdecl *) (char *, char *)) P;
Str_out=DesEn (str_ret1 c_str (), str_code. C_str ());
Str_out=str_out. SubString (1, str_out Length () - 5).
} the catch (... ) {
Str_out="OUT".
}
}
The else
{
Str_out="OUT".
}
}
The else
{
Str_out="OUT".
}
FreeLibrary (myDLL);
MyDLL=NULL;
If (str_out!="OUT")
{
Int_ret=1;
Strcat (Str_ret, str_out c_str ());
}
The else
{
Int_ret=0;
}
Return (int_ret);
}

CodePudding user response:

Pb is calling code? Variable pre-allocated space?

CodePudding user response:

Memory recovery problem

CodePudding user response:

pb unstable

CodePudding user response:

Pre-allocated memory problems

CodePudding user response:

DLL program problem
  • Related