Visual C++ 2005 Express Edition 質問箱
>>940 もとスレに移動した旨の告知とこのスレへの誘導はして置けよな。
Speechうんぬんは全然わからないが、
単一のオブジェクトを共有したいならSingletonのラッパクラスを作ればいいのでは。
難解なのとはチームは組みたくないな
何か言った?
944 :
940:2006/06/14(水) 01:34:43
>>941 ありがとうございます。
Singletonとはコンストラクタをprivateにすることだと思うのですが
GCクラスの中身を別途コピーのような形で作るということなんですかね…?
検討違いのことを言ってしまっている気がしますが…。
プログラミング初心者で申し訳ないっす。
945 :
デフォルトの名無しさん:2006/06/14(水) 01:48:30
C言語をやろうと思い導入しました
ですがうまくいきません
ヘルプの
方法 : Visual Studio で CLR をターゲットにした C++ プログラムをコンパイルする
.NET クラスで C++ プログラムを作成し、Visual Studio 開発環境を使用してそのプログラムをコンパイルします。
この通りに設定してます
しかし
------ ビルド開始: プロジェクト: C, 構成: Debug Win32 ------
コンパイルしています...
Cプラス.cpp
.\Cプラス.cpp(4) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
ビルドログは "file://d:\My document\Visual Studio 2005\Projects\C\C\Debug\BuildLog.htm" に保存されました。
C - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
となってエラーになります
'熱伝導.exe': 'C:\Documents and Settings\ \debug\熱伝導.exe' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。
'熱伝導.exe': 'C:\WINNT\system32\NTDLL.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'熱伝導.exe': 'C:\WINNT\system32\KERNEL32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
とデバッグすると出るのですが、どうすれば回避できるでしょうか?
>>947 マルチはヤメレ
被害が広がっても知らんぞ
949 :
945:2006/06/14(水) 13:52:47
>>946 デバッグなしでできました
デバックありだとできませんね・・
一応実行できたのでd
950 :
940:2006/06/14(水) 16:09:54
自宅からだとCLIスレがUnixペンギンウイルスで書き子できなかったんで・・
すんません。
そしてSpeechLibを使ったプログラム書いた経験ある方ってあんまり居ないんですかね・・・?
951 :
デフォルトの名無しさん:2006/06/14(水) 20:30:55
デザインの事で質問します。
ラベルの大きさが全く変わらないのですがどうしてなんでしょうか?
また選択するとでてくる白いボタンのようなものも左上にしかでてこなく、操作も出来ません。
どうしたらよいのでしょうか。
ノストラダムス
エスパー降臨
>>934 どうも判らん。
以前、VB2005EEで書いたプログラムをVC++2005EE(C++/CLI)に書き換えたら、
実行速度が、格段にUPしたけどなぁ。
>>956 まさか、演算処理が多いプログラムで比較していないか?
U/I中心のプログラムだと殆ど変わらないぞ。
958 :
956:2006/06/15(木) 14:50:32
なるほど、そういうことか。
確かに演算処理てんこもりのプログラムだった。
ということは演算処理中心のプログラムなら、VC++(マネージド)の出番ありって琴ですね。
折角VC++/CLIをやり始めたのに、VBごときと同程度だったらどうしようかと思った。
ありがと!
ライブラリ使わなければ高速
実行速度を比較するときの注意点だがC# やVB.NET はRelaseビルド以外で実行すると極端にパフォーマンスが落ちる。
またコマンドラインから直接何のオプションも無しでコンパイルした場合も同程度にパフォーマンスが悪い。
これはRelaseビルド(最適化あり)以外の場合に、デバッグのステップ実行時のコードの書き換えをサポートするために
かなり実行効率の悪いコードを生成するためで、なぜか無オプションの場合も機能している。
Debugオプション時はこれに加えてJIT時の最適化も抑制する。
これに対してC++/CLRやJ#はデバッグのステップ実行時のコードの書き換えをサポートしていないため
非最適化モード時のスピードの劣化が少ない。とくにC++/CLRはDEBUGビルドでもJIT時の最適化を抑制していない。
比較する場合は最適化ありで比較しないと失敗の元。
961 :
デフォルトの名無しさん:2006/06/15(木) 22:32:01
ちょい長いが次のコードをもとにテストしてみた。このコードはC++/CLR用
using namespace System;
int main(array<System::String ^> ^args) {
const int MAXDIM = 30000;
double sum = 0.0;
Random^ rdm = gcnew Random();
array<double>^ dm = gcnew array<double>(MAXDIM); // double dm[MAXDIM];
for (int i = 0; i < MAXDIM; i++) dm[i] = rdm->NextDouble();
int tstart = System::Environment::TickCount;
for (int i = 0; i < MAXDIM; i++){ int j = MAXDIM - i - 1; dm[i] = dm[i] * dm[j] + 1; }
for (int i = 0; i < MAXDIM; i++) { for (int j = MAXDIM - 1; j > i; j--) {
if (dm[i] > dm[j]) { double temp = dm[i]; dm[i] = dm[j]; dm[j] = temp; }
}}
続き
for (int i = 0; i < MAXDIM; i++) {
int j = MAXDIM - i - 1;
dm[i] = dm[i] * dm[j] - 1;
}
for (int i = 0; i < MAXDIM; i++) sum = sum + dm[i];
int tend = System::Environment::TickCount;
Console::WriteLine("SUM = {0} : elpased = {1}", sum, tend - tstart);
return 0;
}
秒
2.283 C++ (native Cタイプ配列を使用)
2.594 C++/CLR(mix Cタイプ配列を使用)
2.834 C++/CLR(mix array配列を使用)
2.814 C#
3.795 VB(整数Overflowチェック有)
3.445 VB(整数Overflowチェック無)
C++でstd::vector使った場合の結果も知りたかった……
仕事でjavaアプリ作ってて、
今度趣味でフリーソフトでも作ろうかなと思ってます。
今現在、単体で動くアプリを配布しようとしたら
VC++ 6が一番よいのかな?
2005で単体アプリを作ろうとすると
何かと勉強が要る感じですか?
>>963 追加でジェネリックのList<T>と std:vector<T> を追加。
固定配列よりだいぶ遅くなりました。
List<double>^ dm = gcnew List<double>;
std::vector<double> dm;
秒
6.089 C++/CLI(MIX List<T>使用)
6.610 C++/CLI(MIX vector<T>使用)
5.968 C++ (Native verctor<T>使用)
アホが何やってんだか
>>965 ちなみにreserveせずにpush_backとかやっていないよね?
>>968 push_backの部分は測定の範囲外。
for (int i = 0; i < MAXDIM; i++) {
int j = MAXDIM - i - 1;
dm[i] = dm[i] * dm[j] - 1;
}
どうみてもCにしか見えないな
こんなものに.net使う意味があるのか?
>>964 その程度の認識じゃ何をやるにもかなりの勉強が要る感じ。
いまさら6.0を使うポジティブな理由は無いだろ。
>>970 >>933からの流れでC#やVBよりC++/CLIが早いよ〜という意見への反証なのよ。
もちろん実用的なプログラムではない。
.netなのにあえて.net使わないプログラムか
まあそれを言ったらC++自体が
C++なのにあえてクラス使わないプログラムか、とかあるわけで
そんなやつらはMS-Cでも買って使えばいい
Javaでクラス使わない方法教えてください
C++の最適化で、inline関数を自分でヘッダに書かなくて
.cppの方にinline無しで書いても、勝手にinline展開されるんですか?
>>981 /Ob2 オプションが明示的または暗黙に指定されてると、そのとおり。
ありがとうございます
inlineを評価するかしないかはコンパイラ様の機嫌次第だし、
ついてない関数でもリーフ関数とかならインライン展開してしまうのは
コンパイラ様の裁量の範囲内でOK?
986 :
デフォルトの名無しさん:2006/06/18(日) 07:16:40
visual c++ 2005 express editionをダウンロードしてwin32のアプリケーションを作ろうと
ビルドした時に↓のようなエラーが出ます。どこが間違ってるか分かる人いませんか…?
c:\documents and settings\user1\my documents\visual studio 2005\projects\aaaa\aaaa\stdafx.h(28) : fatal error C1083: include ファイルを開けません。'windows.h': No such file or directory
ビルドログは "file://c:\Documents and Settings\user1\My Documents\Visual Studio 2005\Projects\aaaa\aaaa\Debug\BuildLog.htm" に保存されました。
ノシ
'windows.h': No such file or directory の検索結果 約 120,000 件中 1 - 50 件目 (0.51 秒)
>>986 Platform SDKをインストールする必要がある。