Invalid parameter passed to C runtime function

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;
}


调试到调用testfn的位置,进入反汇编:



跟进




那么,什么时候crt会自动加入这样的检查呢?



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值