C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 64bit OSにおけるdllファイルの取り回し


(過去ログ 95 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■56736 / inTopicNo.1)  64bit OSにおけるdllファイルの取り回し
  
□投稿者/ OROCHI (15回)-(2011/01/28(Fri) 15:18:33)

分類:[C#] 

開発環境
OS:XP
Visual Studio 2005

こんにちは、現在VC#2005を用いてアプリケーションを作っています
ある程度までできたので様々なマシンを用いてテストを行ったのですが,Vista及び7の64bitマシンだと起動しないという問題が発覚しています
とりあえずデバッガを使って追いかけたところ、以下のような状態になっていることが分かりました

1.このプログラムは自前のDLLファイルを参照している(このDLLの中に定義してあるクラスがいくつかある)
2.1のDLLファイルの中にあるクラスのインスタンスを生成しようとすると、そこで対象のクラスが未定義扱いになる
3.エラーで止まる
という状態です

そこで以下の2つの対策を考えています
1.dllを使わずに,dllの中身のソースを直接プロジェクトの中身に入れる
2.64bit専用のdllとアプリを作り、使用時に選択させる

ここで質問なのですが、2を実行するためにVC#2005で64bit専用のdllやアプリを組む場合は以下の手順で大丈夫でしょうか?
1:デバッグ→構成マネージャを呼び出す
2:「プラットフォーム」を「Any CPU」から「新規作成」で「新しいプロジェクト プラットフォーム」を呼び出す
3:「新しいプラットフォーム」を「X64」に設定
4:ビルド

よろしくお願いします
引用返信 編集キー/
■56737 / inTopicNo.2)  Re[1]: 64bit OSにおけるdllファイルの取り回し
□投稿者/ shu (387回)-(2011/01/28(Fri) 15:26:05)
No56736 (OROCHI さん) に返信

> そこで以下の2つの対策を考えています
> 1.dllを使わずに,dllの中身のソースを直接プロジェクトの中身に入れる
> 2.64bit専用のdllとアプリを作り、使用時に選択させる
>
> ここで質問なのですが、2を実行するためにVC#2005で64bit専用のdllやアプリを組む場合は以下の手順で大丈夫でしょうか?
> 1:デバッグ→構成マネージャを呼び出す
> 2:「プラットフォーム」を「Any CPU」から「新規作成」で「新しいプロジェクト プラットフォーム」を呼び出す
> 3:「新しいプラットフォーム」を「X64」に設定
> 4:ビルド
今のとこx86でコンパイルしといた方が問題は少なくて済むことが多いです。
x64専用で動かさなければならないものであればそのやり方でよいです。

引用返信 編集キー/
■56746 / inTopicNo.3)  Re[1]: 64bit OSにおけるdllファイルの取り回し
□投稿者/ 渋木宏明 (56回)-(2011/01/28(Fri) 19:11:14)
渋木宏明 さんの Web サイト
> ある程度までできたので様々なマシンを用いてテストを行ったのですが,Vista及び7の64bitマシンだと起動しないという問題が発覚しています
> とりあえずデバッガを使って追いかけたところ、以下のような状態になっていることが分かりました
>
> 1.このプログラムは自前のDLLファイルを参照している(このDLLの中に定義してあるクラスがいくつかある)
> 2.1のDLLファイルの中にあるクラスのインスタンスを生成しようとすると、そこで対象のクラスが未定義扱いになる
> 3.エラーで止まる
> という状態です

「なぜエラーで止まるのか」突き止めないと、その場しのぎの解決しか得られないのではないんじゃないでしょうか。
引用返信 編集キー/
■56747 / inTopicNo.4)  Re[1]: 64bit OSにおけるdllファイルの取り回し
□投稿者/ よねKEN (669回)-(2011/01/28(Fri) 20:00:33)
渋木さんの意見に賛成です。

No56736 (OROCHI さん) に返信
> 2:「プラットフォーム」を「Any CPU」から「新規作成」で「新しいプロジェクト プラットフォーム」を呼び出す

現在のDLLがAny CPUをターゲットにビルドされていて、
それを参照するプロジェクトもAny CPUでビルドされているなら、
x64環境で特に問題は起きないはずなので。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -