Сообщение от wolfhound512
если туда передать пустой тип (Null) или ноль (0), то вылетает MAV
|
Это баг компилятора, т.к. * - передача указателя на данные, в результате с Null получается такое:
sub esp, $00000004
mov eax, [_GetEvent@4]
mov ebx, $00000000
mov ebx, [ebx]
mov [esp], ebx
call eax
Сообщение от wolfhound512
Можно как-то решить эту проблему? Необходимо передать именно нулевой указатель.
|
Выделяешь экземпляр любого тайп (или создаешь банк на 4 байта) и по смещению 4 записываешь туда 0, естессно из библиотеки:
Local MyNull% = CreateBank ( 4 )
PokeI ( MyNull + 4, 0 )
где PokeI соответственно
void PokeI ( int * Address, int Value )
{
*Address = Value;
}
.lib "..."
PokeI ( Address%, Value% )
ну или как-то по другому из своей библиотеки, смысл думаю понятен.