編譯器警告 (層級 1) C4733
指派給 『FS:0』 的內嵌 asm: 處理程式未註冊為安全處理程式
修改 FS:0 值以新增例外狀況處理程式的函式可能無法使用安全例外狀況,因為處理程式可能未註冊為有效的例外狀況處理程式(請參閱 /SHUTDOWNEH)。
若要解決此警告,請移除 FS:0 定義,或關閉此警告並使用 。 要指定安全例外狀況處理程式的EH。
下列範例會產生 C4733:
// C4733.cpp
// compile with: /W1 /c
// processor: x86
#include "stdlib.h"
#include "stdio.h"
void my_handler()
{
printf("Hello from my_handler\n");
exit(1);
}
int main()
{
_asm {
push my_handler
mov eax, DWORD PTR fs:0
push eax
mov DWORD PTR fs:0, esp // C4733
}
*(int*)0 = 0;
}