VC中涉及到调用约定的概念,特别是回调函数CALLBACK,WinAPI等。
这些其实都归结到调用约定上,VC中默认使用的时cdecl的C语言调用约定,而CALLBACK,WINAPI为stdcall即PASCAL调用约定。这两种约定在定义参数传递顺序及堆栈清楚方面有些差异。DELPHI采用的也是PASCAL约定,因此用DELPHI封装的函数在VC中调用时最好指定其约定是stdcall,否则容易造成程序崩溃。
同时,可以在IDE中设置工程默认使用的约定是stdcall还是cdecl。
时间: 2024-10-10 14:34:28