以前はVC++ 2005を使用して構築された、かなり古いインプロセスATL COMサーバーがいくつかあります。
現在、これらのプロジェクトは VC++ 2015 に移植されています。
従来の Win XP システムをサポートする必要があるため、プラットフォーム ツールセットは「VS 2015 - Windows XP」です。また、this 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 エラー コードが表示されます。
このエラーを修正/診断するにはどうすればよいですか?
PS これが理にかなっている場合、XP 組み込みシステムは最上位の AMD Geode プロセッサ上に構築されていますが、XP Pro システムは通常の Intel プロセッサ上に構築されています。