对于给定类型的每个对象,通过调用回调函数调用与该对象的信息。 系统调用回调函数,它就对象或回调函数返回0。
请注意Microsoft Visual C++新功能允许您使用普通函数作为函数传递给 EnumObjects。 该地址传递给 EnumObjects 是指向函数的指针导出与EXPORT 和使用Pascal调用约定。 在保护模式应用程序,因此不必使用Windows MakeProcInstance 函数创建此功能或释放函数使用后使用FreeProcInstance Windows功能。
您也不必导出在一个 EXPORTS 语句的函数名在应用程序的模块定义文件。 可以使用 EXPORT 功能修饰符,为
int CALLBACK EXPORT AFunction(LPSTR,LPSTR);
导致编译器发出名称导出的相应导出记录,不带锯齿化。 对于大部分工作需要。 对于某些特殊情况,例如导出函数的序号或失真导出,您可以在模块定义文件仍需要使用 EXPORTS 语句。
对于生成的Microsoft基础程序,通常使用/GA和/GEs编译器选项。 /Gw编译器选项不使用Microsoft基础选件类。 (如果使用Windows功能MakeProcInstance,您将需要显式转换从 FARPROC 的返回的函数指针到此API需要的类型。)回调注册接口现在为类型安全的(在指向正确类型的特定回调的函数)的函数指针必须通过。
另外请注意所有回调函数必须在返回之前捕获Microsoft基础异常。Windows中,因为异常不能在回调边界时引发。 有关异常的更多信息,请参见文章 异常。