面对
Win32 :: API使用错误的原型调用函数并导致C堆栈一致性EBP = 18fde0 ESP = 18fdd0
以下是perl和C代码
my $CheckSqlAnyWindow = new Win32::API($dllfile,
"CheckSqlAnyWindow", [ 'N', 'P', 'P' ], 'N');
my $hwndSqlany = pack("L", 0);
my ($i, $sqlanyWinId);
START:
for ($i = 0; $i < $numRetries; $i++)
{
$rc = $CheckSqlAnyWindow->Call($procId,"$engine - Adaptive Server Anywhere - 12.0.1 (3817)", $hwndSqlany);
if ($rc <= 0)
{
$Cisco::DbUtils::errstr = Win32::FormatMessage( Win32::GetLastError());
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
c代码
BOOL CheckSqlAnyWindow(DWORD pid, char *winTitle, DWORD * hwnd)
{
StartDbInfo startDbBuf;
BOOL rc;
startDbBuf.pid = …Run Code Online (Sandbox Code Playgroud)