В C ++, если вы пытаетесь получить указатель функции функции Windows API, этот указатель указывает на тот же адрес, который вы получите, если бы использовали GetProcAddress
для имени этой функции и соответствующего модуля. Например:
&MessageBoxA == GetProcAddress("User32.dll", "MessageBoxA");
будет true
. Однако в Delphi это не так. Этот код:
@MessageBoxA = GetProcAddress('User32.dll', 'MessageBoxA');
Не будет не true
, и в моем тесте @MessageBoxA
было 0x0040bd18
, тогда как эквивалент GetProcAdress
вернул то, что сделал аналог С ++ теста 0x7550fd1e
.
Итак, теперь мой вопрос: почему?