Well, it seems to work fine in the test I ran.
#include <setjmp.h>
#include <stdio.h>
#include <windows.h>
jmp_buf jmp;
LONG CALLBACK eh(PEXCEPTION_POINTERS e) {
longjmp(jmp, 1);
}
void main() {
AddVectoredExceptionHandler(1, eh);
for (int i = 0; i != 10; ++i)
if (!setjmp(jmp))
*(char*)0 = 0;
else
puts("ok");
getchar();
}