Visual C++ 2005 Express Edition 質問箱

このエントリーをはてなブックマークに追加
941デフォルトの名無しさん:2006/06/13(火) 19:08:23
>>940
もとスレに移動した旨の告知とこのスレへの誘導はして置けよな。
Speechうんぬんは全然わからないが、
単一のオブジェクトを共有したいならSingletonのラッパクラスを作ればいいのでは。
942デフォルトの名無しさん:2006/06/13(火) 21:57:17
難解なのとはチームは組みたくないな
943デフォルトの名無しさん:2006/06/13(火) 22:39:38
何か言った?
944940: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 スキップ ==========

となってエラーになります
946デフォルトの名無しさん:2006/06/14(水) 02:55:07
>>945
>>885-897

>>944
プログラミング初心者なのはかまわないが、>>941が1行目でいってることも理解できないのは困りモノだ。
もうお前はマルチ認定でいいな。
947デフォルトの名無しさん:2006/06/14(水) 13:31:41
'熱伝導.exe': 'C:\Documents and Settings\ \debug\熱伝導.exe' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。
'熱伝導.exe': 'C:\WINNT\system32\NTDLL.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
'熱伝導.exe': 'C:\WINNT\system32\KERNEL32.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。

とデバッグすると出るのですが、どうすれば回避できるでしょうか?
948デフォルトの名無しさん:2006/06/14(水) 13:46:38
>>947
マルチはヤメレ
被害が広がっても知らんぞ
949945:2006/06/14(水) 13:52:47
>>946
デバッグなしでできました
デバックありだとできませんね・・
一応実行できたのでd
950940:2006/06/14(水) 16:09:54
自宅からだとCLIスレがUnixペンギンウイルスで書き子できなかったんで・・
すんません。

そしてSpeechLibを使ったプログラム書いた経験ある方ってあんまり居ないんですかね・・・?
951デフォルトの名無しさん:2006/06/14(水) 20:30:55
デザインの事で質問します。
ラベルの大きさが全く変わらないのですがどうしてなんでしょうか?
また選択するとでてくる白いボタンのようなものも左上にしかでてこなく、操作も出来ません。
どうしたらよいのでしょうか。
952デフォルトの名無しさん:2006/06/14(水) 20:58:03
>>951
日本語でおk
953デフォルトの名無しさん:2006/06/14(水) 20:58:05
ノストラダムス
954デフォルトの名無しさん:2006/06/15(木) 08:17:11
>>951
AutoSizeをfalse
955デフォルトの名無しさん:2006/06/15(木) 09:07:30
エスパー降臨
956デフォルトの名無しさん:2006/06/15(木) 14:37:39
>>934

どうも判らん。
以前、VB2005EEで書いたプログラムをVC++2005EE(C++/CLI)に書き換えたら、
実行速度が、格段にUPしたけどなぁ。
957デフォルトの名無しさん:2006/06/15(木) 14:42:05
>>956
まさか、演算処理が多いプログラムで比較していないか?
U/I中心のプログラムだと殆ど変わらないぞ。
958956:2006/06/15(木) 14:50:32
なるほど、そういうことか。

確かに演算処理てんこもりのプログラムだった。

ということは演算処理中心のプログラムなら、VC++(マネージド)の出番ありって琴ですね。
折角VC++/CLIをやり始めたのに、VBごときと同程度だったらどうしようかと思った。

ありがと!
959デフォルトの名無しさん:2006/06/15(木) 15:35:16
ライブラリ使わなければ高速
960デフォルトの名無しさん:2006/06/15(木) 19:13:59
実行速度を比較するときの注意点だが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; }
    }}
962デフォルトの名無しさん:2006/06/15(木) 22:32:41
続き
    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チェック無)
963デフォルトの名無しさん:2006/06/15(木) 22:37:08
C++でstd::vector使った場合の結果も知りたかった……
964デフォルトの名無しさん:2006/06/15(木) 23:11:41
仕事でjavaアプリ作ってて、
今度趣味でフリーソフトでも作ろうかなと思ってます。

今現在、単体で動くアプリを配布しようとしたら
VC++ 6が一番よいのかな?

2005で単体アプリを作ろうとすると
何かと勉強が要る感じですか?
965デフォルトの名無しさん:2006/06/15(木) 23:27:23
>>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>使用)
966デフォルトの名無しさん:2006/06/15(木) 23:37:34
アホが何やってんだか
967デフォルトの名無しさん:2006/06/15(木) 23:41:34
>>966
批判するなら、具体的にやりましょう。
968デフォルトの名無しさん:2006/06/15(木) 23:48:50
>>965
ちなみにreserveせずにpush_backとかやっていないよね?
969デフォルトの名無しさん:2006/06/15(木) 23:55:42
>>968
push_backの部分は測定の範囲外。
970デフォルトの名無しさん:2006/06/15(木) 23:58:42
    for (int i = 0; i < MAXDIM; i++) {
        int j = MAXDIM - i - 1;
        dm[i] = dm[i] * dm[j] - 1;
    }

どうみてもCにしか見えないな
こんなものに.net使う意味があるのか?
971デフォルトの名無しさん:2006/06/16(金) 00:01:04
>>964
その程度の認識じゃ何をやるにもかなりの勉強が要る感じ。
いまさら6.0を使うポジティブな理由は無いだろ。
972デフォルトの名無しさん:2006/06/16(金) 00:01:54
>>970
>>933からの流れでC#やVBよりC++/CLIが早いよ〜という意見への反証なのよ。
もちろん実用的なプログラムではない。
973デフォルトの名無しさん:2006/06/16(金) 00:06:07
.netなのにあえて.net使わないプログラムか
974デフォルトの名無しさん:2006/06/16(金) 00:14:24
まあそれを言ったらC++自体が
C++なのにあえてクラス使わないプログラムか、とかあるわけで
975デフォルトの名無しさん:2006/06/16(金) 00:33:39
そんなやつらはMS-Cでも買って使えばいい
976デフォルトの名無しさん:2006/06/16(金) 00:35:34
>>975
スレタイ1000回読んで出直せ
977デフォルトの名無しさん:2006/06/16(金) 00:44:39
Javaでクラス使わない方法教えてください
978デフォルトの名無しさん:2006/06/16(金) 01:00:20
979デフォルトの名無しさん:2006/06/16(金) 01:01:28
>>978
ワロタ
980デフォルトの名無しさん:2006/06/16(金) 13:03:06
>>975
それ何ていうメモリモデル?
981デフォルトの名無しさん:2006/06/16(金) 13:19:39
C++の最適化で、inline関数を自分でヘッダに書かなくて
.cppの方にinline無しで書いても、勝手にinline展開されるんですか?
982デフォルトの名無しさん:2006/06/16(金) 13:45:40
>>981
/Ob2 オプションが明示的または暗黙に指定されてると、そのとおり。
983デフォルトの名無しさん:2006/06/16(金) 13:55:17
ありがとうございます
984デフォルトの名無しさん:2006/06/17(土) 18:19:46
inlineを評価するかしないかはコンパイラ様の機嫌次第だし、
ついてない関数でもリーフ関数とかならインライン展開してしまうのは
コンパイラ様の裁量の範囲内でOK?
985デフォルトの名無しさん:2006/06/17(土) 23:14:40
>>984 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" に保存されました。
987デフォルトの名無しさん:2006/06/18(日) 07:18:05
ノシ
988デフォルトの名無しさん:2006/06/18(日) 08:41:16
'windows.h': No such file or directory の検索結果 約 120,000 件中 1 - 50 件目 (0.51 秒)
989デフォルトの名無しさん:2006/06/18(日) 09:30:59
>>986
Platform SDKをインストールする必要がある。
990デフォルトの名無しさん
>>986
せめてMSの製品情報やFAQくらいは調べてから質問しような。

ttp://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
> Visual C++ 2005 Express Edition では、インストール後すぐに、パワフルな .NET Framework
> アプリケーションを構築することができます。ただし、Visual C++ 2005 Express Edition を使って
> Win32 アプリケーションを構築するには、その前にいくつか手順を踏む必要があります。 ・・・