Invalid parameter passed to C runtime function
寻找位置:
dumpbin /exports c:\windows\system32\msvcrt.dll | findstr _invalid_parameter
什么时候编译器生成调用这个_invalid_parameter的代码呢?
测试代码:
int main(int argc, char * argv []){
typedef void (*pfn_invalid_parameter)(const wchar_t *, const wchar_t *, const wchar_t *, int, int * );
HMODULE hmod = LoadLibraryA("msvcrt.dll");
pfn_invalid_parameter testfn = (pfn_invalid_parameter)GetProcAddress(hmod, "_invalid_parameter");
testfn = testfn;
int t;
testfn(__FILEW__, L"$$$$$$$$$$$$", L"$$$$$$$$$$$$$$$$$", 123, &t);
printf("asdfsdfsd");
return 0;
}
跟进
那么,什么时候crt会自动加入这样的检查呢?