小编Pra*_*eek的帖子

Win32 :: API提供错误的原型错误

面对

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)

c perl winapi

0
推荐指数
1
解决办法
152
查看次数

标签 统计

c ×1

perl ×1

winapi ×1