★初心者にVisual C++を教えるスレ★ Part30
at TECH
1:デフォルトの名無しさん
08/05/07 23:33:53
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
URLリンク(www.hyuki.com)
URLリンク(myu.daa.jp)
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
過去スレ、関連スレなどは>>2-5辺り。
2:デフォルトの名無しさん
08/05/07 23:34:50
Part29 スレリンク(tech板)
Part28 スレリンク(tech板)
Part27 スレリンク(tech板)
Part26 スレリンク(tech板)
Part25 スレリンク(tech板)
Part24 スレリンク(tech板)
Part23 スレリンク(tech板)
Part22 スレリンク(tech板)
Part21 スレリンク(tech板)
Part20 スレリンク(tech板)
Part19 スレリンク(tech板)
Part18 スレリンク(tech板)
Part17 スレリンク(tech板)
Part16 スレリンク(tech板)
Part15 スレリンク(tech板)
Part14 スレリンク(tech板)
Part13 スレリンク(tech板)
Part12 スレリンク(tech板)
3:デフォルトの名無しさん
08/05/07 23:35:24
Part11 スレリンク(tech板)
Part10 スレリンク(tech板) ※
Part09 スレリンク(tech板) ※
Part08 URLリンク(pc5.2ch.net)
Part07 URLリンク(pc5.2ch.net)
Part06 URLリンク(pc5.2ch.net)
Part05 URLリンク(pc5.2ch.net)
Part04 URLリンク(pc5.2ch.net)
Part03 URLリンク(pc5.2ch.net)
Part02 URLリンク(pc3.2ch.net)
Part01 URLリンク(pc3.2ch.net)
4:デフォルトの名無しさん
08/05/07 23:36:02
【関連スレ】
■MFC相談室 mfc18d.dll■
スレリンク(tech板)l50
Win32API質問箱 Build57
スレリンク(tech板)l50
【C++】 DirectX初心者質問スレ Part14 【C】
スレリンク(tech板)l50
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131
スレリンク(tech板)l50
C++相談室 part56
スレリンク(tech板)l50
C/C++の宿題を片付けます 95代目
スレリンク(tech板)l50
【初心者歓迎】C/C++室 Ver.42【環境依存OK】
スレリンク(tech板)l50
【関連サイト】
猫でもわかるプログラミング
URLリンク(www.kumei.ne.jp)
MSDN ライブラリ ※変更された
URLリンク(msdn.microsoft.com)
URLリンク(msdn2.microsoft.com) (2005のことはこっち)
Platform SDK Update ※変更された
URLリンク(www.microsoft.com)
Google
URLリンク(www.google.co.jp)
5:デフォルトの名無しさん
08/05/07 23:36:54
【このスレの前身 VisualC++相談室 過去スレ】
part 1 URLリンク(piza.2ch.net)
part 2 URLリンク(piza.2ch.net)
part 3 URLリンク(piza2.2ch.net)
part 4 URLリンク(pc.2ch.net)
part 5 URLリンク(pc.2ch.net)
part 6 URLリンク(pc.2ch.net)
part 7 URLリンク(pc.2ch.net)
part 8 URLリンク(pc.2ch.net)
part 9 URLリンク(pc5.2ch.net)
6:デフォルトの名無しさん
08/05/07 23:38:00
Platform SDKの中で一番新しいのはこっち
Microsoft Windows Server 2003 R2 Platform SDK Web Install
URLリンク(www.microsoft.com)
(ISO版などあり)
これ以降、Platform SDK + .NET Framework SDKとして
Windows SDKが公開されていて、その中で一番新しいのはこれ。
Windows SDK for Windows Server 2008 and .NET Framework 3.5
URLリンク(www.microsoft.com)
少し前のバージョン(Vista + .NET 3.0の初期版)には日本語版もあったけど、
日本語化されているのは専ら.NET Framework部分だけ。
VC6対応の、最後のPSDKはここ。
URLリンク(www.microsoft.com)
テンプレ終わり。
7:デフォルトの名無しさん
08/05/07 23:39:53
前スレ>>6-7をテンプレに入れてみた。
8:前スレ971
08/05/07 23:40:00
自己解決しました...orz
2つの環境でうまくいかないのでおかしいなあと思っていたのですが、
1つ目の環境では32bit環境であるにもかかわらず64bitのライブラリをリンクしようとしていたミス
2つ目の環境ではmulti processorのライブラリを指定しているにもかかわらずsingle processorのライブラリディレクトリを指定していたミス
という非常にアホなミスで単にライブラリのリンクが失敗しているだけでした...
ご丁寧に呼び出し規約のことを考えていただいたみなさま、どうもありがとうございました。
dumpbinででてくるものが_付きでないものだから、呼び出し規約のせいじゃないかと思考が凝り固まってしまったのが敗因でした…
蛇足ですが前スレ>>990-992は自分じゃないですorz
みなさまどうもありがとうございました。
9:C++ コンパイラ
08/05/08 02:04:45
Microsoft Visual C++ Toolkit 2003
fURLリンク(195.252.112.9)
VCToolkitSetup.exe
size 32952488
sha1sum 956c81c3106b97042c4126b23c81885c4b5211f4
edonkey checksum
ed2k://|file|VCToolkitSetup.exe|32952488|c534888fa7605403dcb183d2d15282d1|/
10:C++
08/05/08 02:05:16
Visual Studio 2005 Express Edition CD イメージからのインストール方法
URLリンク(www.microsoft.com)
Visual C++ 2005 Express Edition 日本語版 サイズ 611,540 KB CRC 0xB3AD1A2F
URLリンク(download.microsoft.com)
Visual Studio 2008 Express Edition の DVD イメージからのインストール
URLリンク(www.microsoft.com)
URLリンク(download.microsoft.com)
11:デフォルトの名無しさん
08/05/09 00:33:05
if(i<-1)
{
return;
}
だとコンパイル通るのに
#define test (-1)
if(i<test)
{
return;
}
だと
if(i<test)
でエラーが出るんだが何がいけないんでしょうか?
12:デフォルトの名無しさん
08/05/09 00:50:48
>11
どんなエラーですか?
見た感じエラーにはならないですけど。
13:デフォルトの名無しさん
08/05/09 00:57:22
VC++で開発しようと考えていて、開発環境で悩んでいます。
VC2003 Standardは持っていて、慣れていていい感じなんですが
プロジェクトをシェアしようとすると、無償で入手可能なVC2005 Expressか
VC2008 Expressがいいように思えます。
・VC2005 Expressはりソースエディタがないらしいけど
どうやってリソースを作成しているんでしょ?
・VC2008 Expressはマルチスレッドプログラムの
デバッグができないらしいけど、あきらめるしかない?
作ろうとしているプログラムは、リソースも使うしマルチスレッドでもある。
おとなしく買えってことなのかな?
自分でStanadrdなりProfessionalなりを買うのはいいんだけど
自分しかメンテできないという環境はいやだなぁ、と思って相談しました。
14:デフォルトの名無しさん
08/05/09 01:26:44
デバッグは判らんが、リソースのコンパイルは出来るはずだけど。
仮にできなくても、リソースコンパイラはWindowsSDKに入ってた気がする。
RCファイルは自力で書かないといけないけど。
15:デフォルトの名無しさん
08/05/09 01:42:58
>>12
error C2143: 構文エラー : ')' が ';' の前にありません。
)つけてるのに出ます
わけがわかりません
16:デフォルトの名無しさん
08/05/09 01:46:15
>14
リソースに関しては、一回作れば済む話なので、あまり心配はしてません。
マルチスレッドデバッグは、これがないと厳しいな。
VC2003でマルチスレッドプログラムをデバッグしたときは、
ブレークポイントでちゃんと他のスレッドも止まってくれるのよね。
17:デフォルトの名無しさん
08/05/09 01:49:00
>15
testって定義が重複してたりしないかな?
重複しなそうな別の名前(testtesttestとか)に変えるとどう?
18:デフォルトの名無しさん
08/05/09 16:35:47
VC++のいい解説サイトありませんか?
色々検索してるんですがいいところがみつからなくて・・・
C言語のコンパイルの仕方がわかればいいです
19:デフォルトの名無しさん
08/05/09 16:59:16
コンパイルの仕方って・・・
解説サイト以前の問題じゃないのか?
20:デフォルトの名無しさん
08/05/09 17:13:40
mingwはインストール段階で挫折して
VC++ではどこで挫折するのかと思ったら
コンパイルの仕方を質問してるってどんだけ〜
21:デフォルトの名無しさん
08/05/09 19:10:18
>>17
いろんな名前にかえましたが
やっぱり同じエラーです
プロジェクト作り直したりしてみましたが
だめでつた
Const int とかにすることにしました
ありがとうございやした
22:デフォルトの名無しさん
08/05/09 20:48:46
マクロ使うとエラーがわかりにくいといういい例だね。
23:デフォルトの名無しさん
08/05/09 20:53:10
初めまして。
なにを書けば意図が伝わるのか、要点がよくわからないのですが
その辺りは指摘をお願いします。
では、質問させていただきます。
ダイアログにおいて[Microsoft Web Browser]という[ActiveXコントロールの挿入]を行いました。
すると、ダイアログにブラウザが表示されるのですがスクロールバーの消し方がわかりません。(縦横両方)
スクロールバーの設定はいじれるのでしょうか?
色々検索し、スクロールバーを消す命令を見つけたのですが
記述してもなにも起こらず仕舞いです。
晒します。
BOOL CBROWSER::OnInitDialog()
{
CDialog::OnInitDialog();
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
SetIcon(m_hIcon, TRUE);
RECT Rect;
GetWindowRect( &Rect );
ModifyStyle(WS_CAPTION|WS_SYSMENU|WS_BORDER|WS_DLGFRAME|WS_CLIPSIBLINGS,WS_MAXIMIZE,0);
SetWindowPos( &wndTop, -1,-1, Rect.right-Rect.left, Rect.bottom-Rect.top, SWP_FRAMECHANGED );
ScreenToClient(&Rect);
m_Web.SetWindowPos( &wndTop, Rect.left, Rect.top, Rect.right-Rect.left+1, Rect.bottom-Rect.top+1, SWP_FRAMECHANGED );
m_Web.EnableScrollBar(SB_BOTH,0); //これがそれらしいのですが・・・
return TRUE;
}
どなたかご存知であればご返答よろしくお願いします。
24:デフォルトの名無しさん
08/05/09 21:01:56
IE専用のコマンドじゃなかったかな?
25:デフォルトの名無しさん
08/05/09 21:08:36
0
26:デフォルトの名無しさん
08/05/10 01:14:18
>>25
1にしろということだと思って
m_Web.EnableScrollBar(SB_BOTH,1);
に変更しましたが変化なしでしたorz
27:デフォルトの名無しさん
08/05/10 04:36:36
バリバリの初心者ですが、データをtxtファイルから入力するときにそのtxtファイルをどのフォルダに入れればいいかわからなくて困ってます。
どなたかご教授を・・。
28:デフォルトの名無しさん
08/05/10 06:19:58
どこでもいい
29:デフォルトの名無しさん
08/05/10 08:13:51
>23
それ使えるのウィンドウのスタイルとしてスクロールバーを持っている場合だろうな
30:デフォルトの名無しさん
08/05/10 09:50:38
>>28
どどどどこでもいいんすか。
じゃあエラーが出るのは違う要因のようです・・・。
ありがとうござんす。
31:デフォルトの名無しさん
08/05/10 11:28:11
ファイル位置を絶対パスで指定しろ
32:デフォルトの名無しさん
08/05/10 11:45:20
Form1のボタン1を押す
Form2のボタン2のEnableがtrueになる
Form1のボタン1のEnableがfalseになる
Form2のボタン2を押す
Form1のボタン1のEnableがtrueになる
Form2のボタン2のEnableがfalseになる
これだけのことなんですが、動くソースがどうしても書けません。
33:デフォルトの名無しさん
08/05/10 12:06:56
>>29
そうなんですか・・・
ありがとうございます。
他の方法をあたってみます。
34:デフォルトの名無しさん
08/05/10 14:01:27
ソース載せたら回答つきやすいかも。
35:デフォルトの名無しさん
08/05/10 15:46:18
/EHsはどこで定義されていますか?
36:デフォルトの名無しさん
08/05/10 16:34:30
自クラスのプロパティを、外部クラスから取得、設定するために
Setter、Getter のメソッドを用意しているのですが
Setter、Getter 以外のメソッドで
自クラスから自クラスのプロパティにアクセスする場合も
Setter、Getter を経由すべきなのでしょうか
また、経由しないことでデメリット等はあるのでしょうか
よろしくお願い致します
37:デフォルトの名無しさん
08/05/10 16:54:34
値の管理(上限・下限とか)を厳格にやりたいんなら、
経由すればいいし、パフォーマンス優先なら経由しなければいい。
38:デフォルトの名無しさん
08/05/10 17:08:13
>>36
【肥大化】C++ を見捨てたヤシ【複雑化】
スレリンク(tech板)
39:デフォルトの名無しさん
08/05/10 17:13:10
>>37
なるほど、ありがとうございます
>>38
いま覗いてみましたが、
後半のほうでその手の話題になってますね、ちょいと読んでみます
ありがとうございます
40:デフォルトの名無しさん
08/05/10 18:35:42
>>36
自クラス内だから直接触ってもいと思う。
でも、特殊な操作が無くて、Setter、Getter使って困ることが無ければ使ったほうがいいんじゃないかな?Setter、Getterつかっておけば後からの仕様変更が楽ではある。
41:デフォルトの名無しさん
08/05/10 21:48:11
サンプルのソースとかをビルドする時に新しくプロジェクトを作りますが、
サンプルのソースがフォルダで管理されている時にVCでも同じフォルダ構成で管理したいのですが、
いっぺんに同じフォルダ構成にする方法ってありますか?
42:デフォルトの名無しさん
08/05/11 01:15:09
サンプルのディレクトリとファイル構成をそのまま
sample.vcprojのFilterタグとFileタグに出力するスクリプトを書けばいいんじゃないかな
43:デフォルトの名無しさん
08/05/11 04:36:10
●6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
URLリンク(system-trading.jp)
[シストレFXグランプリとは]
クリック証券が提供するFXのデモ取引環境を利用して、システムトレードにチャレンジできるFX取引のグランプリです。
お客様ご自身で作成したシステムトレードの機能を評価する「シストレソフト部門」とトレード収益を競う「トレード部門」の2部門構成となっております。
●5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
デモトレードの優勝者には賞金三百万円がプレゼントされます。
▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
●URLリンク(www.fx-gp.com)
▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
44:デフォルトの名無しさん
08/05/11 09:24:16
>>42
ファイルを追加するようにフォルダを追加することは出来ないのですね。
具体的にはどうしたらいいんでしょう?
45:デフォルトの名無しさん
08/05/11 09:36:10
スクリプト書けないなら手でやった方が早い
46:デフォルトの名無しさん
08/05/11 09:46:00
スクリプトじゃなくても好きな言語でプログラム書けばいい
47:デフォルトの名無しさん
08/05/11 11:55:54
そうですか。。
とても量が多いのですが手でやってみます。
48:デフォルトの名無しさん
08/05/11 13:31:12
逆引きゲームプログラミングという本のサンプルプログラム↓
URLリンク(www.shuwasystem.co.jp)
をBCC5.5ではなくVisualStudio2005でコンパイルしたいのですが、
〜番目の引数を 'const char [〜]' から 'LPCWSTR' に変換できません。
というエラーが数百と、
〜番目の引数を 'unsigned char [〜]' から 'char *' に変換できません。
〜番目の引数を 'const char [〜]' から 'unsigned char *' に変換できません。
というエラーが42箇所出てしまいコンパイルできません。
数百出たエラーはプロパティで マルチバイト文字セットを使用する にしてコンパイルしたら全て消えたのですが、
他の42のエラーもコンパイルの設定で回避できるようでしたらその方法を教えてください。
42箇所だけですので書き換える方法でもいいです。
error C2664: 'FontPrint' : 3 番目の引数を 'const char [15]' から 'unsigned char *' に変換できません。
FontPrint( 208, 160,"NOW GAME SCENE");
error C2664: 'ReadWaveFile' : 3 番目の引数を 'unsigned char []' から 'char *' に変換できません。
wave_size = ReadWaveFile( "..\\..\\data\\bgm00.wav", &g_WaveControllBGM->WaveFormat, g_WaveControllBGM->WaveData);
こういった箇所です。よろしくお願いします。
49:デフォルトの名無しさん
08/05/11 14:41:47
>>48
コンパイラの設定で回避できるか知らんが
できたとしても設定で回避するようなエラーではない。
手作業で修正するべき。
50:デフォルトの名無しさん
08/05/11 15:24:49
printf()で出力したファイルをテキストファイルに書き出すことってできますか?
51:デフォルトの名無しさん
08/05/11 15:31:58
できるけどスレ違い
52:デフォルトの名無しさん
08/05/11 15:32:53
>>50
コマンドプロンプトでリダイレクトして実行って話?
53:デフォルトの名無しさん
08/05/11 15:37:25
VS2005を使っています。
あるプロジェクトをデバッグしようとしたところ、そのアプリは
起動時に必要なディレクトリの存在チェックをしているみたいで
プロジェクト内にはそのディレクトリが存在しないため、エラーに
なって起動出来ませんでした。
そのディレクトリを作ってあげれば良いと思うのですが、プロジェクト配下に
作りたくないので、別の場所にアプリが必要とするディレクトリを作りたいと考えています。
この場合、アプリを起動させる時に、作成した別の場所のディレクトリをスタートアップ時の
ディレクトリとして認識させる方法ってあるのでしょうか?
分かり難い説明で申し訳ありません・・・。
54:デフォルトの名無しさん
08/05/11 15:48:59
>>53
プロジェクトのプロパティのデバッグに作業ディレクトリって項目ないか?
それで起動時のカレントディレクトリは指定できるけど
55:デフォルトの名無しさん
08/05/11 15:55:20
>>53
デバッグの作業ディレクトリを指定すりゃいいんじゃないの?
56:デフォルトの名無しさん
08/05/11 16:24:00
>>54 >>55
おおっ!まさにこれです!
無事に起動する事が出来ました!
ありがとうございました!
57:デフォルトの名無しさん
08/05/12 01:57:50
Visual C++ 2008 Express Editionで、C言語の勉強をしたいのですが、
前スレで教えてもらったこの方法
---------------
[ファイル]->[新規作成]->[プロジェクト]->[Win32]->[Win32コンソールアプリケーション]
プロジェクトを作る場所、プロジェクト名を決定し、[OK]
[次へ]を選択し、[追加のオプション]で[空プロジェクト]を選択し[完了]
デフォルトでは左に表示される[ソリューションエクスプローラ]のツリー内の[ソースファイル]を右クリック
[追加]->[新しい項目]->[C++ファイル(.cpp)]
追加したいファイル名を入力して[OK]、拡張子まで書けば*.cにもできる。
で、ファイル内に以下のコードを記述する
#include<stdio.h>
int main( void ) {
puts( "ググレカス" );
return 0;
}
[Ctrl + F7]でコンパイルする。エラーがなければ[F5]で実行。
すぐにコマンドプロントが消えるのは仕様。出力結果を残したいならば[Ctrl + F5]で実行すればいい。
[F7]でビルドする。
-----------------------
では、C++言語になってしまうようです。
C言語をやるにはどうしたらよいでしょうか。
58:デフォルトの名無しさん
08/05/12 01:59:29
VCでやれ
59:デフォルトの名無しさん
08/05/12 02:02:33
>>58
言われてみればそのとおりでした。
さっそくそっちをダウンロード&インストールしてきます。
60:長いので二つに分割します(1/2)
08/05/12 04:19:58
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
struct test
{
test(): a( rand() % 10 ) { }
int a;
};
int main()
{
// コンストラクタの rand() が機能しない
vector< test > t1(10);
for ( vector< test >::size_type i = 0; i != t1.size(); ++i )
{
cout << t1[i].a << " ";
}
cout << endl;
// コンストラクタの rand() がちゃんと機能する
vector< test > t2;
for ( vector< test >::size_type i = 0; i != 10; ++ i)
{
test t;
t2.push_back( t );
cout << t2[ i ].a << " ";
}
cout << endl;
return 0;
}
61:長いので二つに分割します(2/2)
08/05/12 04:22:05
Visual C++ 2008 Express Edition ( Windows XP ) で上のプログラムを実行すると
t1[ 0 ] から t1[ 9 ] まではすべて同じ値に
t2[ 0 ] から t2[ 9 ] まではばらばらの値に
なります。いったいが何がそうさせているんでしょう?
どうも何度か試したところでは t1[ 1 ] 以降は 一つ前の要素の値をそのままコピーしているらしく
たとえば
test(): a( 0 ) { if ( 何がしかの条件 ) { a = 1; } }
のようなコンストラクタを書いたとき
本来 0 にならなければならない要素にもかかわらず
直前の要素が 1 の時に 0 にならないケースが発生します。
test() { if ( 何がしかの条件 ) { a = 1; } else { a = 0; } }
って書くしかないんでしょうか?
62:デフォルトの名無しさん
08/05/12 06:10:31
それVCというか普通のC++の範囲内だろ
63:デフォルトの名無しさん
08/05/12 07:50:19
>>61
再現する最低限のソースを作って張るんだ。
貼られた部分だけを見ると、引き数つきのコンストラクタがないからエラーが出そうなんだが。
64:デフォルトの名無しさん
08/05/12 08:19:26
ぱっと見、問題ないけどなあ
うーん
65:デフォルトの名無しさん
08/05/12 10:09:02
コンストラクタでrandとか・・・
66:デフォルトの名無しさん
08/05/12 10:15:44
>>63
大丈夫、10はtestではなくvectorの引き数だ。
>>61
ディフォルトコンストラクタは最初の一回だけ呼ばれて、後はコピーコンストラクタしか呼ばれない。
つーか、実験目的ならrand()なんか使わずにclock()でも使っておけよ。
67:デフォルトの名無しさん
08/05/12 10:27:59
>>66
clock()だと間に合わないみたいねw
--
[foo@Corvus tmp]$ ./a.out
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
--
ってことで、こんな風にしてみた。
--
static int staticCounterForDefault;
static int staticCounterForCopy;
struct test
{
int a;
test() : a(++staticCounterForDefault) {}
test(const test & foo) : a(++staticCounterForCopy) {}
};
--
では問題、実行せずに出力結果を予測しなさい。
# って、厳密には実装依存なのかな。
68:デフォルトの名無しさん
08/05/12 10:30:17
正直スレ違い
69:67
08/05/12 10:38:27
しまった、すっかりC/C++スレかと。正直すまんかった。
>>61
ってことで、納得できなければ続きはC/C++スレ辺りで。
70:デフォルトの名無しさん
08/05/12 10:40:00
スレリンク(tech板)
71:デフォルトの名無しさん
08/05/12 12:58:44
BEGIN_MESSAGE_MAPマクロですべてのイベントを同じ関数に飛ばして、その中で処理を分けたいのです。
それで次のようにOnProcが処理関数だとすると、ID_CMD_1,.....,ID_CMD_100に対応するID番号を
OnProcに知らせてやれば出来ると思うのですが、どのようにIDを取得するのかわかりません。
よろしくお願いいたします。
BEGIN_MESSAGE_MAP(CXXXX, XXXXX)
//{{AFX_MSG_MAP(CXXXX)
ON_COMMAND(ID_CMD_1, OnProc)
ON_COMMAND(ID_CMD_2, OnProc)
ON_COMMAND(ID_CMD_100, OnProc)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
72:デフォルトの名無しさん
08/05/12 13:14:26
ON_COMMAND_EX
73:デフォルトの名無しさん
08/05/12 17:39:21
出来ました。ありがとうございました
74:デフォルトの名無しさん
08/05/12 20:59:17
あるフォームから別のフォームを開いて
その別のフォームにある変数を渡したいのですがどうすればいいでしょうか
75:デフォルトの名無しさん
08/05/12 21:08:36
C++/CLIの話?
76:74
08/05/12 21:09:47
VC++の話です。
77:デフォルトの名無しさん
08/05/12 21:19:20
1. 別のフォームの開き方は分かるけど、変数の渡し方が分からない。
2. 変数の開き方はわかるけど、別のフォームの開き方が分からない。
3. どっちも分からない。
4. その他のことが分からない。
さあどれだ?……と、聞き返さなくて済むよう初めから詳しく書け。
78:74
08/05/12 21:27:50
大変申し訳ないです
別のフォームを開いてそのフォームの中で元のフォーム内の変数を使いたいのですが、
元のフォームから別のフォームを開く際に別のファイルのヘッダをインクルードしているので、
別のフォーム上で元のフォームのヘッダをインクルードできなくて、
そのような状態でどのように変数を渡してやればよいのかがわかりません。
79:デフォルトの名無しさん
08/05/12 21:34:22
その、1個か2個なら単純に渡すための関数作って引数で渡せばいいんじゃないの?
80:74
08/05/12 21:56:29
すみません 渡すための関数が思い浮かびません。
引数で渡せるのであれば、その引数をどうやって渡すかが思い浮かびません。
81:デフォルトの名無しさん
08/05/12 21:57:07
>>76
一応言っておくけど、VC++ってのは言語名じゃなくて
MSの開発ソフトの名前だぞ。
82:デフォルトの名無しさん
08/05/12 22:15:06
>>80
自分でそういう関数を作ればいいだけのこと。
83:74
08/05/12 22:30:33
引数で渡す関数を作れ
⇒その関数の引数はどこから持ってくるの?
⇒そういう関数を作れ
(・д・)
84:74
08/05/12 22:35:08
メインのcppでint passをローカル定義して
メインのcpp内で
void set_pass(int j){i=j;}
int get_pass(void){return i;}として
最初のフォームでset_pass(渡したい変数)実行して、
次のフォームで 受け取る変数 = get_pass()
でOK?
85:デフォルトの名無しさん
08/05/12 22:54:02
テキトーなインターフェースクラスでも作成して、継承してしまえば?
86:デフォルトの名無しさん
08/05/13 01:04:46
>>59ですが、
ここに
URLリンク(www.microsoft.com)
VC2008というのが見あたらないのですが…
Visual C++2008でC言語のコンパイルなどをするにはどうしたらよいでしょうか?
87:デフォルトの名無しさん
08/05/13 01:22:21
拡張子がcppだとc++ cだとcでは
88:デフォルトの名無しさん
08/05/13 01:23:27
つか、C言語をC++でコンパイルしてもほとんど出来る。mainのvoidとかがちょっと違う
89:デフォルトの名無しさん
08/05/13 01:23:49
>>87
>>59ですが、
>>57の方法だと
>[追加]->[新しい項目]->[C++ファイル(.cpp)]
のC++をCに変えればいいのか…と思ったらCファイルが選択できないようなのです。
90:デフォルトの名無しさん
08/05/13 01:29:39
C言語はC++コンパイラでコンパイル出来ますよ CPPでC言語出来ます
91:デフォルトの名無しさん
08/05/13 01:33:45
>>90
そうなのですか?
猫でもわかるプログラミングで、
URLリンク(www.kumei.ne.jp)
これ↓をコンパイルするとエラーが出るのですが…
#include <stdio.h>
main()
{
printf("This is a test!");
}
92:デフォルトの名無しさん
08/05/13 01:40:02
拡張子を、.cppから.cにするんだよ。
93:デフォルトの名無しさん
08/05/13 01:49:31
>>92
手動で変更するということでしょうか?
してみましたが、
コンパイルやビルドしようとするとエラーが出ます…
94:デフォルトの名無しさん
08/05/13 01:51:01
エラーが出るならエラー内容を張る!
ってかさ、>>57にも書いたんだけど、「拡張子まで書けば*.cにもできる。」ってあるじゃん?
ついでに・・・
猫に書いてあるプログラムが規格に完全に準拠しているなんて思わない!
すべてのコンパイラが規格通りの挙動を正しく行うなんて思わない!
猫に書いてあるプログラムが全てのコンパイラで通ると思わない!
95:デフォルトの名無しさん
08/05/13 01:52:07
あ、解決しました
一つのソースファイルに複数のCファイルやC++ファイルをいれていたためエラーが起こっていたようです。
ご迷惑をおかけしました。
96:デフォルトの名無しさん
08/05/13 01:53:22
>>94
>エラーが出るならエラー内容を張る!
次回からはそうします…
すいませんでした
>ってかさ、>>57にも書いたんだけど、「拡張子まで書けば*.cにもできる。」ってあるじゃん?
あああああ
完全に見落としてました…
すいません
>ついでに・・・〜
ややこしいのですねぇ…
ありがとうございました
97:デフォルトの名無しさん
08/05/13 01:55:15
>>83
だって自分のプログラムなんだから渡したいデータは自分で用意できるはずだろ。
98:デフォルトの名無しさん
08/05/13 06:25:39
>>97
近くに郵便局が無くて荷物を郵送できない人に
なら郵便局まで荷物を郵送すればいいじゃない
99:デフォルトの名無しさん
08/05/13 14:16:47
>>91
int main()
100:デフォルトの名無しさん
08/05/15 18:21:44
最近VC6をさわり始めました。
いま、ダイアログベースでピクチャボックスの画像を[印刷]ボタンを作って印刷しようと思っているのですが、どうにも仕方がわかりません。画像は表示できています。
印刷できるようにするにはどのようなプログラムを組めばいいのでしょうか?
よろしくお願いします。
101:デフォルトの名無しさん
08/05/15 19:48:15
sdiだったらデフォルトで印刷機能が組み込まれてたと思うから
それを参考にしてダイアログベースに実装する
102:デフォルトの名無しさん
08/05/16 22:21:39
ブレークポイントを設定するとそこで止まるわけだけど、
beginthreadexで作ったスレッド内でブレークポイント設定すると
停止したと同時にOSも固まるのはどうにかなりませんか?
103:デフォルトの名無しさん
08/05/16 22:37:16
別にフリーズせんけど
別のバグでIMEとかインテリセンスがらみでフリーズはあるけどそれじゃね?
104:デフォルトの名無しさん
08/05/16 22:44:21
コンソールアプリとして開発したソフトを
気が変わって(ウィンドウを使いたくなったので)通常のアプリにしたくなったんですが
最低限どこを書き換えるといいでしょうか?
単純にmainをWinMainに書き換えるだけだと不十分でした。
105:デフォルトの名無しさん
08/05/16 22:47:37
かなり買えないと無理
106:デフォルトの名無しさん
08/05/16 22:48:08
Windows-PCを買ったけどMacにしたくなったのでロゴだけを張り替えましたが不十分でした。
107:デフォルトの名無しさん
08/05/16 22:54:35
>>104
プロジェクトのプロパティの変更
108:デフォルトの名無しさん
08/05/16 23:00:01
たぶん1から作り直した方が早い
109:デフォルトの名無しさん
08/05/16 23:18:13
>>105、108
ダイアログ程度のウィンドウを表示したいだけなら,
"windows.h"をインクルードして,CreateDialog()でも
呼び出してダイアログを作ればよいだけ。
もっと本格的に作りたいなら,プログラムの構造から見直す必要が
あると思うので、105,108の言うように最初から作った方が
良いと思うよ。
110:105
08/05/16 23:34:08
ありがとうございます。
結局1から作り直し(といっても90%コピペ)しました。
111:デフォルトの名無しさん
08/05/16 23:34:21
>>100
御参考。
URLリンク(msdn.microsoft.com)(VS.85).aspx
112:デフォルトの名無しさん
08/05/17 00:10:22
すみません。家にVisualC++6.0というのがインストールしてあって
兄貴の猫でもわかるWindowsプログラミングという本をやりました。
で、大体どのようなものかわかったのですが、
今日本屋でその続編で猫でもわかるネットワークプログラミングという
本をみつけましたが、第2版とかかれていまして、VisualC++.NET対応と書いてありました。
これは、VisualC++6.0では無理でしょうか?中身はWindows32APIを使うものでして、MFCは無しみたいです。
どうか、よろしくお願いします。
113:デフォルトの名無しさん
08/05/17 00:12:29
Managed C++とかC++/CLIとか.NET Frameworkとかいうキーワードが書いてあったらできないかもしれない
でもWinSockとかを使うだけだったらVC6.0でもいけるよ
114:デフォルトの名無しさん
08/05/17 00:14:28
>>112
いまはVisualC++2008(バージョン9.0)が無料配布されている。これ入れればよい。
115:デフォルトの名無しさん
08/05/17 00:16:01
ここへいけば無料インストールできるよ
URLリンク(www.microsoft.com)
116:デフォルトの名無しさん
08/05/17 00:25:15
Expressをインストールして勉強しています。
クリップボードを監視したくて情報を探していたのですが、
・SetClipboardViewerという関数でクリップボード監視を開始する。
・SetClipboardViewerという関数はStanderdEditionを買わないと入らない
MFCまたはATLが無いと使えない。
と解釈しました。
質問ですが、
上記解釈は正しいでしょうか。
何か別にMFCですとかATLをわざわざ経由しなくても
上記関数と同様のことをしている関数があったりしますでしょうか。
VC++だけのためにVisual Studio買いたくない(´・ω・`)
117:デフォルトの名無しさん
08/05/17 00:25:49
>>113 そうですか。ありがとうございます。とりあえず、買ってきます。
本当にありがとうございます。
>>114-115 同一人物の方ですか?わざわざリンクまで張っていただき
感謝です。一応、それもダウンロードしてみます。
ありがとうございました。明日、本屋いってきます。
118:デフォルトの名無しさん
08/05/17 00:26:26
ちなみに、Visual C++ .NETには2002と2003とあって、それぞれ7.0と7.1に相当する。
この頃のMS製品はなんでも.NETとつけるのが流行だった。
119:デフォルトの名無しさん
08/05/17 00:26:30
ウエ・ミロ(2003〜)
120:デフォルトの名無しさん
08/05/17 00:28:06
>>116
SetClipboardViewerはATLもMFCも関係ない、ただのWindowsの関数。
2005ならWindows SDK入れてVCと統合しろ。
2008なら使えないのはなんか設定がおかしいだけ。
121:デフォルトの名無しさん
08/05/17 00:31:23
>>120
取り急ぎ、感謝申し上げます。
2008です。いろいろと設定を見てみます。
122:112
08/05/17 00:36:16
>>118
どうもありがとうございます。色々あるんですね。
今のVer.2008が9.0っていうのもわかりました。ぐぐったら色々でてきました。
>>119
ねこでもわかるのホームページがかいてありますね。。すごいソースですね。。
徐々にやっていきます。ありがとうございました。
123:デフォルトの名無しさん
08/05/17 00:41:21
visual studio 2008のWindowsフォームアプリケーションで作成中です。
ドラッグ&ドロップでファイルのパスをtextBoxに表示しようとしてるのですが,上手く行きません。
検索して見つけたのがlistBoxだったので,↓のように変えてみたのですが・・
private: System::Void textBox_DragEnter(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e)
{
if(e->Data->GetDataPresent(DataFormats::FileDrop))
e->Effect = DragDropEffects::All;
else
e->Effect = DragDropEffects::None;
}
private: System::Void textBox_DragDrop(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e)
{
String^ s = (String^)e->Data->GetData( ::System::Windows::Forms::DataFormats::FileDrop, false);
textBox->Text=Path::GetFileName(s);
}
これでファイル名が表示されると思ったのですが,なにも表示されません。
どこがいけないのがご教授願います。
124:デフォルトの名無しさん
08/05/17 00:42:18
2005Express+PlatformSDKでクリップボードをアレコレできるよ。
俺作ったことあるし。
125:デフォルトの名無しさん
08/05/17 01:01:02
>>120
ありがとうございました。
Windowsの関数とおっしゃられたので
Includeディレクトリgrepしてみたら
WinUser.h内に宣言らしきものがあったので
それをIncludeしてるWindows.hをForm1.hに
Includeしてみたら関数を認識するようになりました。
(.cppにIncludeしても認識しないんですね。。。)
ちょっと引数と戻り値の型合わせがうまくいきませんで
コンパイルは通りませんが、関数が使えることがわかって
大きく前進しました。
本当にありがとうございました。
126:デフォルトの名無しさん
08/05/17 01:13:38
>>125
Form1.hとか言ってるし、もしかして.NETかぁ?
あと、Windowsの「関数」じゃなくてAPIな。
127:デフォルトの名無しさん
08/05/17 01:48:40
>>126
Help見たら「Microsoft Visual Studio 2008」って書いてあるので
.NETではないと思います。
「2008だけど、.NET」っていう状況があるんでしょうか。すみません。無知で。
状況がわかりやすいようにデフォルトのForm1って名前に置き換えて
わざわざ書いてしまいました。
自分の解釈がおかしいことがしばしばあるもので。。。
ああ、すいません。xxに関する便利な公開された関数をまとめて
xxAPIっていうものだと思ってました。
勉強することが多すぎますね。
今日は本当にありがとうございました。
128:デフォルトの名無しさん
08/05/17 07:59:29
>>127
Windowsフォームアプリケーションは、
.NET Frameworkを使うアプリケーション。
参照設定しているライブラリ(C#/VB.NETなら
プロジェクトのプロパティの設定)の種類によって、
実行には.NET Framework 2.0/3.0/3.5のいずれかが必要。
Visual Studio 2008に.NETがつかないのは、単にMSの戦略の問題。
129:デフォルトの名無しさん
08/05/17 12:45:33
APIって関数がまとまったものの名称だから
Windowsの関数と言っても問題なし。
130:デフォルトの名無しさん
08/05/17 13:58:26
インターフェースと関数は違うだろ
131:デフォルトの名無しさん
08/05/17 23:08:16
正式な言い方はWin32APIだろうな。
またWin32APIには関数だけじゃなくて型の定義なども含まれると認識している。
132:デフォルトの名無しさん
08/05/18 08:38:29
>>128
.netだと売れないってこと?
133:デフォルトの名無しさん
08/05/18 08:54:50
.netで作られたアプリを実行するには
ユーザが.net Frameworkを用意しなくちゃ行けない
でも、そういうのを用意できるユーザってどのくらいいるのよと
134:デフォルトの名無しさん
08/05/18 09:32:16
商品名に.netがつかなくなっただけで中味は今まで通り.net対応
MSとしては.netを一押ししたいから無償配布のExpressなんかは
デフォルトだと.netのプログラムを作るようになっている
135:デフォルトの名無しさん
08/05/18 13:20:03
>>133
Windowsユーザーのほとんどだろうね。
136:デフォルトの名無しさん
08/05/18 13:26:43
論理的には導入できるけど
.net?なにそれ?ってインストールもできない初心者がいて困る
ってことを言いたいのかと思われ
インストールできるけどヘンなランタイムとか要らないから却下
とかいう自称玄人もいるから困るといいたいのかと思われ
Vistaなら標準で3.5入ってるってから期待してたんだけど
あの体たらくだしなぁ
137:デフォルトの名無しさん
08/05/18 16:37:13
updateで自動的に.NET入らないんだっけ?
138:デフォルトの名無しさん
08/05/18 17:22:29
>>137
商用アプリの顧客は必ずしも、自動updateに任せっ切りじゃないからなあ。
仮想化とか、ローカルストレージ無しの方向に行ってるんで、今後の大規模.NET
アプリはサービス提供の方向と踏んでる。
139:デフォルトの名無しさん
08/05/19 10:59:41
VBも最初はruntimeの絡みで滅茶苦茶な評価だったことを思い出せば、OSの
世代交代さえ順調に進めば.NET FRAMEWORKの配布は問題じゃなくなるんだろう。
ただね、肝心のOSの世代交代がね。どうもね。
MSがVISTAへの交代より.NET FRAMEWORKへの移行を重要と位置づけて、SPで
.NET FRAMEWORKとSuper Fetchを配っちまえば話は早いのにと思わないでもない。
140:デフォルトの名無しさん
08/05/19 13:58:44
その辺コミコミのVistaだろ
ま、失敗してるが
141:デフォルトの名無しさん
08/05/19 14:40:09
>>138
一般ユーザのことだと思うぞ
142:デフォルトの名無しさん
08/05/20 18:52:41
すみません。VisualC++6.0でコンボボックスを使用しているのですが、
リソースエディタでコンボボックスを右クリックしてプロパティで
項目の入力っていう欄があるんです。そこに項目を並べたいんですが、
どのようにならべればいいんですか?
並べたいデータは、
北海道、本州、四国、九州、その他 の5つです。
よろしく><;
143:デフォルトの名無しさん
08/05/20 20:18:55
コード書かなあかんよ
144:デフォルトの名無しさん
08/05/20 20:31:06
沖ノ鳥島を忘れないであげてください
145:デフォルトの名無しさん
08/05/20 21:28:44
ちゃんと竹島(日本領)も入れとけよ。
146:デフォルトの名無しさん
08/05/20 21:37:11
つ 南樺太&千島列島
147:デフォルトの名無しさん
08/05/20 21:51:37
質問です
VC++2008で、親フォームから呼び出した子フォームを非アクティブにする方法で
ShowWithoutActivation
を使うと良いと言うのは分かったのですが、プロテクトプロパティなので、簡単に
変更が出来ません。
変更の仕方or別の方法、を教えてください
148:デフォルトの名無しさん
08/05/20 22:36:03
子フォームを実装しているクラスでパブリックに実装するとか。
とりあえずリフレクションとか。
というか、C++/CLIだよな?
149:デフォルトの名無しさん
08/05/20 22:53:51
ええと、なにぶん知識が浅いので
^ と * ←を使い分けや gcnew をつかってるのでC++/CLIのはずです
150:デフォルトの名無しさん
08/05/20 23:29:33
○青春のスポーツテスト準備編
場面は中学2年時。僕は運動音痴だ。
明日はスポーツテストだ。僕はみなに押し付けられて、学校の授業後に
ライン引きをやっていた。僕のほかには女子のヤンキーぽい生徒が2人だ。
なぜ、こんな連中が仕事をしているかと思えば、退屈だし面白そうだから
という話だ。
50m走のラインを引き終えると、ヤンキー女子の2人が走ってみようと言い出し2人は走っていた。「あ〜、つかれた〜」といいながら座っている。でも満足げだ。
しばらくすると、「おい、おまえも走れよ!」といいだし、ぎゃあぎゃあ騒いでいる。
僕は運動音痴なので走り方もおかしいからひどく嫌だったが、後がこわいので走ることにした。
よ〜いどんで思い切り走ってみる。しかし、女子2人は大声で笑い転げている。
僕は必死で走ろうと思えば思うほど、フォームが乱れるのがよくわかる。
どうしようもなく恥ずかしい。。しかし、次の瞬間転んでしまった。
女子2人は寄ってきて僕をからかう。そのとき、思春期にありがちな突如の勃起が襲ってきた。
どうしようもなく半ズボンがテントを張っている。
「キャー、こいつ何?興奮してるの?言葉攻め?」
僕はもうどうしようもなく恥ずかしかった。しかし、女子はすでになんらかの経験済みらしく、
慣れている様子で「おい、どうしたんだよ?」とかいいながら僕のナニをけったりしてくる。
僕はとまどいながらも恥ずかしさをぐっとこらえていた。
その後も「運動は音痴だけど、こっちはすげえじゃん」とかいってぎゃーぎゃー騒いでいる。
その後、10分くらいたって、あきたのか笑いつかれて2人は帰っていった。
僕は恥ずかしさと何がなんだかわからないままドキドキしてしょうがなかった。もう何もかんがえるどころではなく、ただうろたえるだけの時間だった。
2人が帰った後、ようやく帰ったかと自分を取り戻す事ができた。しかし
その直後、ドクドクしたものが出てきた。僕の初射精だ。その後もあわてたことはいうまでもない。
151:デフォルトの名無しさん
08/05/20 23:33:41
fatal error C1083: include ファイルを開けません。'iostream.h': No such file or directory
このエラーが出てコンパイルできません。どうすればいいか教えてください。
バージョンはVC++ 2008 EEです。
後、一応参考になりそうなサイトで調べてVC++のディレクトリに下記のパスを追加している状態です
C:\Program Files\Microsoft Visual Studio 9.0\MSDN Express Library
コンパイルしようとしているソース
#include <iostream.h>
void main()
{
char ss[80];
cout << "何か入力してください";
cin >> ss;
cout << "入力は[" << ss << "]です\n";
}
152:デフォルトの名無しさん
08/05/20 23:36:21
すみません。今日も質問させてください。
visual c++ 2008 Expressでwindowsフォームアプリケーションを作成しています。
ビルドしたexeを他の人のマシンで起動しようとすると、
>このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。
と出て起動できませんでした。
色々調べた結果、以下のとおり解釈しました。
@visual studioがインストールされていない環境で動かすには
静的リンクでコンパイルする必要がある。
Awindowsフォームアプリケーション(でデザイナからレイアウトしているような場合)
では静的リンクは不可能
Bwindowsフォームアプリケーションでしかデザイナは使えない
Cデザイナが使えない場合、手打ちで「上からxピクセル。。。」と
コーディングしていくしかない
質問ですが、上記解釈は正しいでしょうか。
ほんのちょっと上のレスでそれらしいやりとりが見受けられましたが、
自分の思っているソレの話のことなのか、いまいち自信がないので、
ご回答のほどよろしくお願いします。
153:デフォルトの名無しさん
08/05/20 23:44:15
>>151
そのサイトは残念ながら参考にならない。
そのソースは古くて、現代C++では通用しない。
#include <iostream>
int main()
{
char ss[80];
std::cout << "何か入力してください";
std::cin >> ss;
std::cout << "入力は[" << ss << "]です" << std::endl;
}
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4853日前に更新/178 KB
担当:undef