我有许多相当老的进程内ATL COM服务器,以前是使用VC ++ 2005构建的。
现在这些项目被移植到VC ++ 2015
由于我需要支持传统的Win XP系统,因此平台工具集是“VS 2015 - Windows XP”。此外,根据此issue,设置了/Zc:threadSafeInit-
编译器选项。
所有服务器都是使用ATL属性编写的,每个项目都有类似的东西:
[module(dll, uuid = "{E49F47F5-C0E2-4C1D-8C66-BF8AE6DDF5A1}",
name = "MyLib",
helpstring = "MyLib 1.0 Type Library",
resource_name = "IDR_MYLIB")]
class CMyLibModule
{
public:
// Override CAtlDllModuleT members
};
问题所在。
所有这些项目在WinXP Pro上运行良好。但是当我尝试在XP Embedded机器上注册它们时,我在LoadLibrary
调用时得到0xC000001D错误代码。
如何修复/诊断此错误?
P.S。如果这是有道理的,XP嵌入式系统建立在顶级AMD Geode处理器上,而XP Pro系统则位于常规Intel处理器之上。