2016-03-21 24 views
-2

私はC++ライブラリにC++/CLIラッパーを使用してC#.NETでプログラミングされたアプリケーションを実行しています。そしてそれはWindows 7上で完全に動作します。しかし、私はWindows XP上でこのアプリケーションを実行するとクラッシュします。Visual Studio 2015のC#およびC++再配布可能ファイルの依存関係がありません

"Visual Studio 2015用のC++ Redistributable"をインストールしましたが、動作しません。

Dependency Walkerの出力です:「プラットフォームツールセット」を設定し、プロジェクトのプロパティを起動して、構成プロパティ/全般]:

Starting profile on 21/03/2016 at 16:02:58 

Operating System: Microsoft Windows XP Professional (32-bit), version 5.01.2600 Service Pack 3 
Program Executable: c:\documents and settings\alejandro\escritorio\release - net\SAMPLE.EXE 
Program Arguments: 
Starting Directory: C:\Documents and Settings\Alejandro\Escritorio\Release - NET\ 
Search Path: C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem 

Options Selected: 
    Simulate ShellExecute by inserting any App Paths directories into the PATH environment variable. 
    Log DllMain calls for process attach and process detach messages. 
    Log DllMain calls for all other messages, including thread attach and thread detach. 
    Hook the process to gather more detailed dependency information. 
    Log LoadLibrary function calls. 
    Log GetProcAddress function calls. 
    Log first chance exceptions. 
    Log debug output messages. 
    Automatically open and profile child processes. 
-------------------------------------------------------------------------------- 

Started "SAMPLE.EXE" (process 0x244) at address 0x00400000. Successfully hooked module. 
Loaded "NTDLL.DLL" at address 0x7C910000. Successfully hooked module. 
Loaded "MSCOREE.DLL" at address 0x79000000. Successfully hooked module. 
Loaded "KERNEL32.DLL" at address 0x7C800000. Successfully hooked module. 
DllMain(0x7C910000, DLL_PROCESS_ATTACH, 0x00000000) in "NTDLL.DLL" called. 
DllMain(0x7C910000, DLL_PROCESS_ATTACH, 0x00000000) in "NTDLL.DLL" returned 1 (0x1). 
DllMain(0x7C800000, DLL_PROCESS_ATTACH, 0x00000000) in "KERNEL32.DLL" called. 
DllMain(0x7C800000, DLL_PROCESS_ATTACH, 0x00000000) in "KERNEL32.DLL" returned 1 (0x1). 
Injected "DEPENDS.DLL" at address 0x08370000. 
DllMain(0x79000000, DLL_PROCESS_ATTACH, 0x00000000) in "MSCOREE.DLL" called. 
DllMain(0x08370000, DLL_PROCESS_ATTACH, 0x00000000) in "DEPENDS.DLL" called. 
DllMain(0x08370000, DLL_PROCESS_ATTACH, 0x00000000) in "DEPENDS.DLL" returned 1 (0x1). 
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsAlloc") called from "MSCOREE.DLL" at address 0x79006F3C and returned 0xFFBADD11. 
Exited "SAMPLE.EXE" (process 0x244) with code -1073740791 (0xC0000409). 

答えて

0

は、プラットフォームツールセットの設定を確認してください。 Visual Studio 2012および2013には、Windows XPを対象とした個別のツールセットがあります。私はVS 2015のためにこの設定がまだ存在すると仮定しますので、 "_xp"バリアントが選択されていることを確認してください。

また、Debugビルドではなく、XPマシンでリリースビルドを実行していることを確認してください。

+0

はい、選択したv140_xpプラットフォームツールセットを使用してすべてのライブラリをコンパイルしています –

+0

Well drat。私はあなたが.Net 4.6 Runtimeをインストールしていると仮定していますが、それは私が現時点で思いつくことができるすべてです。 –

+0

私は.NET 4を使用しています。そして、私はそれをWindows XPにインストールしました。この問題は、私がvc140に切り替えたときに始まりました:( –

関連する問題