質問

OK、ここに今日の奇妙さがあります。
ソースコードにアクセスできない既存のC ++プログラムへの拡張機能を作成します。

標準のC / C ++ DLLを書き込み、IJWを使用してC#DLLを呼び出します。私はしばらくしていませんでしたが、今、私はウィンドウで作業するには1つを取得しようとしています。 / P>

複数のバーチャルPC(XPとWindows 7)を持っていますDLLはXP上で正しく機能します。 Visual Studio 2008がインストールされている場合は、Windows 7でも機能します。 Microsoft Visual C ++ 2008 SP1 Redistributableパッケージをインストールしたばかりの清潔なWindows 7ではなく、清潔なWindows 7ではなく。

コンパイラスイッチがmt [d]に設定されている限り、クリーンWindows 7ボックスにC ++ DLLをコンパイルして実行できますが、/ CLRスイッチを設定した場合は、MD [D]に変更する必要があります。クリーンウィンドウ7ボックスで失敗します。しかし、Visual Studio 2008がインストールされているWindows 7ボックスにはありません。

クリーンボックスにインストールする必要があるものについてのアイデア? (もちろんVS以外)

あなたの助けをありがとう。

l。 Lee Saunders

役に立ちましたか?

解決

OKこれは悪いです。必要なファイルがデバッグバージョンであることを指摘し、DLLをデバッグモードでコンパイルしたことを意味していることを指摘しました。彼は私が解放モードを試みることを提案した。

それで、Windows 7 Basicを実行しているマイバーチャルPCの新しいコピーを使用すると(これは3.5 C ++ Redistがインストールされました)。うんそれはやった。

その後、リリースモードでコンパイルされたDLLをコピーしました。動いた。

OK、私は正式に壁に頭を太くしたいです。

あなたの時間をありがとう。

l。Lee Saunders

他のヒント

VC ++ Runtime Redistributable(ネイティブC ++用のサポートコードを持っています)と.NET Framework 3.5(C ++ / CLIのサポートコードを持っています)。

.NET 3.5にWin7が付属していますが、VS2008 SP1には.NET 3.5 SP1が付属していますので、Windows Updateからのすべての.NET更新をインストールすることをお勧めします。

今は気分が悪い。Windows 7の完全にクリーンなインストールではありませんでした。アプリを作成するアプリをインストールする必要がありました。そのプログラムの最新のパッチは、Visual C ++ 2008 SP1の再配布可能なパッケージをインストールしました。

まあ、私はちょっとしたC ++ / CLI DLLのインストールプロジェクトを作成しようとし、依存関係を含めるように言われました。2つのファイルに引っ張られました:

C:\ Program Files \ Common Files \ Merge Modules¥Microsoft_VC90_DEBUGCRT_X86.msm C:¥Program Files¥Common Files¥Merge Modules¥Policy_9_0_Microsoft_vc90_Debugcrt_x86.msm

インストールと小さなアプリを作成しました。私は私のDLLとLoを手動でコピーし、彼らが今で働いていました。そのためにそれを働くために私はこれら2つのファイルを必要としていました。

なぜですか?そして、なぜ彼らはRedistパッケージに含まれていなかったのですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top