在DLL中使用cpu特定功能有哪些标准技术?

And*_*mbe 4 windows dll optimization

简短版本:我想知道在DLL中使用CPU特定指令是否可能,以及如何最好?

稍长版本:从Microsoft下载(32位)DLL时,似乎一个尺寸适合所有处理器.

这是否意味着它们是为最低公分母(即操作系统支持的最低平台)而严格构建的?或者是否有一些技术用于导出DLL中的单个接口,但在幕后使用CPU特定代码以获得最佳性能?如果是这样,它是如何完成的?

Ada*_*rce 6

我不知道任何标准技术,但如果我必须做这样的事情,我会在DllMain()函数中编写一些代码来检测CPU类型并使用函数指针填充跳转表,每个函数指针都针对CPU优化版本功能.

当CPU类型未知时,还需要最小公分母函数.

您可以在注册表中找到当前的CPU信息:

HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor
Run Code Online (Sandbox Code Playgroud)