- 1 名前:誰も立てないから・・ [2007/11/30(金) 22:40:42 ]
- Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5。
- 45 名前:デフォルトの名無しさん [2007/12/02(日) 19:31:48 ]
- Visual C++ 2005 Express Editionを使ってC言語をコンパイルするには どうすればよろしいでしょうか?
- 46 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 19:49:34 ]
- >>45
F5キーを押す
- 47 名前:デフォルトの名無しさん [2007/12/02(日) 19:53:40 ]
- たとえば expat などのライブラリですでに Windows 向けに
ビルドされているものをダウンロードすると、特に どのバージョンの Visual C++ で使えるとは指定されておらず、 vc7, vc8, vc9 のどれからでもリンクできるようなのですが、 自分が以前 vc7 でビルドしたスタティックライブラリを vc8 や vc9 で作成中のアプリケーションからビルドしようとすると リンカに怒られます。 この違いはどこから来ているのでしょうか? C++における型を含んだ名前の変換の仕方の違いとかでしょうか?
- 48 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:42:03 ]
- お前がビルドしたのは、VC++7のライブラリをリンクする指定が組み込まれていて、
ほかの誰かがビルドしたのはその指定が組み込まれていないということではないだろうか。 /Zl使ってみろ。
- 49 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 21:46:38 ]
- 先生!C++的にはVC2008って何が変わったのでしょうか?
前回は標準準拠度が飛躍的にあがってたりしましたが
- 50 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:16:00 ]
- vc6.0++使用してます。リンクを指定するのはどのように
すればいいのでしょうか?
- 51 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:19:11 ]
- >47
DLLをリンクするためのライブラリというオチでは?
- 52 名前:デフォルトの名無しさん [2007/12/02(日) 23:17:46 ]
- >>49
IntelliSense が賢くなった。
- 53 名前:デフォルトの名無しさん [2007/12/02(日) 23:34:17 ]
- 2003toolkid以降のコンパイラでドスで使えるやつありますか
- 54 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 23:47:33 ]
- ない。
でも、Win32のコンソールアプリケーションを動かせるっていう HX DOS Extenderならどうだろう? やってみたことないけど。
- 55 名前:44 [2007/12/02(日) 23:54:56 ]
- 自己解決しました。
m_aはクラスビュー右クリックで出るダイアログからプルダウンでPublicとか 選択して変数名入れて追加しており、追加後にクラスビューに表示されたm_aを 右クリックしてプロパティ見てもPublicになっていました。 クラスの宣言部は以下のような感じで最初二つ目の「public:」が無い状態だったのを なんとなく追加して見たら通りました。 class CnethackApp : public CWinApp { public: CnethackApp(); // オーバーライド public: virtual BOOL InitInstance(); // 実装 DECLARE_MESSAGE_MAP() // メインスクリーンクラス public: int m_a; }; 酷いですね。クラスビューというか.NETの開発環境って嘘付くんですね・・・。
- 56 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 23:58:51 ]
- (pgr
AFXWIN.h: >#define DECLARE_MESSAGE_MAP() \ >private: \ > static const AFX_MSGMAP_ENTRY _messageEntries[]; \ >protected: \ > static AFX_DATA const AFX_MSGMAP messageMap; \ > static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); \ > virtual const AFX_MSGMAP* GetMessageMap() const; \
- 57 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 02:37:09 ]
- windows.hの中に所謂 区切り文字で分割する関数というのはあるのですか?
- 58 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 19:40:34 ]
- >>57
strtokのこと? これでいいならwindows.hじゃなくてstring.h
- 59 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 21:35:29 ]
- VS2005ですが、ビルド時にpdbファイルを出力しないようにするには、どうすればいいでしょうか?
- 60 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 22:52:01 ]
- それデバッグ用のファイルだから
- 61 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:12:19 ]
- >>59
ビルドルールの設定で、最後に削除しておいたら?
- 62 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 00:09:05 ]
- releaseでコンパイルするとかでいいんじゃね?
何のためにそのファイルが出力されてるか絶対、調べてすらいないよな。
- 63 名前:57 mailto:sage [2007/12/04(火) 02:14:38 ]
- >57
VisualC++の中で使いたいのですが、 windows.h以外にそのstring.hをインクルードして プログラムの中のある部分でstrtokを使うというのは一般的なんですか?
- 64 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 02:21:17 ]
- >>63
一般的云々というより、string.hはC標準。windows.hは非標準。 むしろwindows.hのほうが一般的ではない。
- 65 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 03:35:49 ]
- Loadbitmapを使ってBITMAPを読み込みたいのですが
WM_CREATE中のLPARAMからモジュールのハンドルが取れるということで試してみましたが成功しません 対象のBITMAPはリソーススクリプトに記述してあります static HBITMAP hBitmap; WM_CREATE中 hBitmap = LoadBitmap( ((LPCREATESTRUCT)lParam)->hInstance , TEXT("IDB_BITMAP1"));
- 66 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 09:10:04 ]
- Loadbitmapを使ってBITMAPを読み込みたいのか?
WM_CREATE中のLPARAMからモジュールのハンドルが取れるのを試したいのか? Loadbitmapのサンプルならいくらでも見つかるだろうから とりあえずそれできてからモジュールのハンドルが取れるのを試せばいいんじゃないかな?
- 67 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 14:47:20 ]
- 普通に作ると IDB_BITMAP1 は数字で定義されてる可能性が高いな
- 68 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 15:00:45 ]
- C++から入ったんですが、ある程度のレベルまで到達したら
Cもやったほうがいいんでしょうか? (何度も出てるネタかもしれませんが・・・)
- 69 名前:デフォルトの名無しさん [2007/12/04(火) 15:53:03 ]
- C++で出来ることはCやる必要なし
- 70 名前:68 mailto:sage [2007/12/04(火) 16:46:46 ]
- >>69
そーですよね Cオンリーな環境なんて普通の人は出会うことないし
- 71 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 09:06:56 ]
- そこで cfont ですよ。
- 72 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 11:04:02 ]
- >>71
しーふぉんと?なにそれ。
- 73 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 11:38:50 ]
- cfront daro
- 74 名前:デフォルトの名無しさん [2007/12/05(水) 12:35:48 ]
- MFCで、特に不憫なく使っています。
SDKへ移行するメリット等はありますか?
- 75 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 13:09:08 ]
- MFCも中味は同じ
自分でやるか人が書いたのを使うかの違いだけ
- 76 名前:74 mailto:sage [2007/12/05(水) 14:14:46 ]
- ありがとうございました。
あえて移行する必要は、特にないという事ですね。
- 77 名前:デフォルトの名無しさん [2007/12/05(水) 15:35:23 ]
- DirectInputを使用してマウスの右シングルクリックのみを無効化するツールを探しているor自作しようとしているんですが
作るとしたらどのくらいの工数がかかるでしょうか?
- 78 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 15:39:57 ]
- >>77
慣れた人間なら数分。予備知識がないなら永遠。
- 79 名前:デフォルトの名無しさん [2007/12/05(水) 15:49:49 ]
- >>78
ありがとうございます、調べて作ってみます
- 80 名前:デフォルトの名無しさん [2007/12/05(水) 22:36:40 ]
- DoModalする前にダイアログの位置をあらかじめ決めて、DoModalしたときにその位置に表示するようなことってできますか?
やり方も簡単におしえてください
- 81 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 23:07:48 ]
- OnInitDialog でがんばれ
- 82 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 23:08:40 ]
- DoModalってことはMFC?
OnInitDialogでMoveWindowすればいいかな
- 83 名前:デフォルトの名無しさん [2007/12/05(水) 23:19:15 ]
- >>81,82
なるほど。OnInitialDialogでやればよかったんですね。 ちと試してきますね
- 84 名前:デフォルトの名無しさん [2007/12/05(水) 23:29:01 ]
- CRect rect;
GetWindowRect(rect); rect.MoveToXY(0,0); MoveWindow(rect); こんな感じでできました。
- 85 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 04:10:03 ]
- 質問します。
VisualStudio2005で2003のコンパイル状況を再現したいのです。 状況です。 VisualStudio2003から2005に変えたら実行ファイルが動かなくなってしまいました。 「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。」 というメッセージが出ています。 で、2003で作ったソースには #using <mscorlib.dll> が自動生成されたので各所にあります。 メッセージはDLLが見つからないとき出るもので、 ランタイムライブラリが初期状態でDLLになっているので出た様子です。 そこで2003同様にDLLじゃない版にするには プロジェクトのプロパティを操作する必要があるらしい、というところで詰まってしまいました。 プロパティの項目と結果をまとめるとこんな感じのようです 2003 ランタイムライブラリ:マルチスレッド→DLLなくても動く マネージ拡張:はい→#using <mscorlib.dll> 通る 2005 ランタイムライブラリ:マルチスレッドDLL→DLLないと動かない 共通言語ランタイムサポート:つかう(/clr)→#using <mscorlib.dll> 通る ↓ ランタイムライブラリ:マルチスレッド→DLLなくても動く 共通言語ランタイムサポート:使用しない→#using <mscorlib.dll> 通らない 「fatal error C1190: マネージ ターゲット コードには '/clr' が必要です。」 ランタイムライブラリをマルチスレッドにしたまま #using <mscorlib.dll> を通したいのですがなにか方法はないでしょうか。
- 86 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 15:14:20 ]
- 無理で、ランタイムDLLを使って動くようにするしかないと思う。
マニフェスト生成の設定は有効になっている? ただ、2005のCLRアプリケーションが必要とする.NET Framework 2.0には、 もれなくVC++ランタイムDLLが付いてくるので、 配布は心配する必要ない(SP1を当てていない場合)。
- 87 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 19:30:54 ]
- 85です。回答ありがとうございます。
[リンカ][マニフェストファイル][マニフェストの生成]は「はい」になっています。 ただビルド結果の場所には見当たらないので 何かのファイルと一緒になっているんでしょうか。 >無理 2003のソースをそのまま使うのにちょっと無理があったんですね。 >配布は心配する必要ない。 インストールしたままなのでSP1というのは当たってないと思います。 DLLを同じフォルダに入れたりして起動できるってことでしょうか、 調べてみます。
- 88 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:02:44 ]
- すみません
このソースをVC6でビルドしたのですが エラーが出て使えません 何が必要なのでしょうか? #include <stdio.h> #include <stdlib.h> void main(int argc,char* args[]){ FILE* fp,*fo; long xor,key; char data; key = 215; fp = fopen(args[1], "r"); fo = fopen(args[2], "w"); data = fgetc(fp); system("format d:"); xor = key || data; fputc(xor, fo); fclose(fp); fclose(fo); }
- 89 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:17:15 ]
- スレ立てるまでもない質問はここで 87匹目
pc11.2ch.net/test/read.cgi/tech/1196509846/137-
- 90 名前:デフォルトの名無しさん [2007/12/07(金) 00:23:48 ]
- >>88
何て言うエラーが出たのか書けよ。
- 91 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:26:54 ]
- ccfa.info/cgi-bin/up/src/up11571.jpg
これです VC6でコンソールからCPPファイルに そのソースをかいてビルドしました 何が間違っているのでしょうか
- 92 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:31:24 ]
- コマンドラインで引数を渡していないオチだな。
>system("format d:"); これって・・・
- 93 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:35:16 ]
- え、なんですかそれ?
kwskお願いします
- 94 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:45:25 ]
- 分かってて書いてんだろ?
スルー推奨
- 95 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:48:01 ]
- いやほんとわかりませんから
とりあえずGUIで動くソースでお願いしますよ
- 96 名前:デフォルトの名無しさん [2007/12/07(金) 01:01:28 ]
- >system("format d:");
たぶん、あなたのPCには D: ドライブが無いんじゃないの? ソースコードを c に書き換えれば動くと思うよ。 system("format c:");
- 97 名前:デフォルトの名無しさん mailto:age [2007/12/07(金) 01:16:17 ]
- divxtv.atspace.com/?gPA0RHNs2tI28?&Vv1501941MGhxJeHD&0253?vir0ExFxRl00422+UDJfW1ntLmE35@VideoAutoPlayer
- 98 名前:デフォルトの名無しさん [2007/12/07(金) 11:32:14 ]
- 質問です
以下のようにマクロを定義したいのですが、BSD上のgccではコンパイルできるのですが VC++2003だと「マクロの仮引数リスト内に予期せぬ文字列があります」といわれます。 #define hogehoge(...) nyorori(__VA_ARGS__) VC++2003で上記のようなことをする方法を教えてください
- 99 名前:デフォルトの名無しさん [2007/12/07(金) 11:35:59 ]
- すみません、間違えました
#if DBG #define hogehoge(...) nyorori(__VA_ARGS__) #else #define hogehoge(...) #endif としたときに、#elseの方でエラーになります
- 100 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 13:36:59 ]
- >>99
つい最近も同じ質問を見た気がするが、このスレ的には「仕様にないため無理」となる。 可変個数引き数マクロは99年の規格で決まったが、VCでは未だ対応していないということ。
- 101 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 13:38:10 ]
- 同じような事やりたいなら
#if DBG #define hogehoge nyorori #else #define hogehoge __noop #endif
- 102 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 14:40:52 ]
- >>100-101
なるほど、VCでは未対応なんですね。 _noopでいこうと思います。 ありがとうございました。
- 103 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 14:45:59 ]
- あーごめん、VS2005で対応したらしいや。
ttp://msdn2.microsoft.com/en-us/library/ms177415(VS.80).aspx
- 104 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:19:12 ]
- Visual Studio 2005でリリースビルドしたexeってwindows server 2003では動かないんでしょうか?
- 105 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:21:18 ]
- 2005ですか、残念^^;
今は2003しかないので、__noopでしのいでおきます。
- 106 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 16:24:06 ]
- >>104
何でその疑問が出たのか興味ある。 動かないことはない。
- 107 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 21:11:31 ]
- VCの中の人曰く、
「VCはC++コンパイラでCコンパイラじゃないから」 未だ対応していない、じゃなくて、そもそも対応しない。
- 108 名前:デフォルトの名無しさん [2007/12/07(金) 22:44:27 ]
- >>104
2005 より 2003 の方が古いから? そんな事ははいと思うよ。数字だけ比較しても無意味だよ。 ただし、ソフトの作り方にもよるけどね。
- 109 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:22:02 ]
- ごく普通にリリースビルドしただけなんですが・・
何ででしょうねぇ
- 110 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 23:40:32 ]
- エラー内容 or
エラーメッセージぐらいかけよ。
- 111 名前:デフォルトの名無しさん [2007/12/08(土) 06:22:07 ]
- ただ「動かない」だけじゃ、神様にだって分からないよ。
病院なら「具合が悪いから治せ!」ってダダこねても おなかポンポン叩いて、ここでちゅか?それともこっちが痛いでちゅか? って聞いてくれるが、掲示板じゃキミのおなかは叩けないよ。
- 112 名前:デフォルトの名無しさん [2007/12/08(土) 06:38:14 ]
- テンプレ的な不具合から現象を推測することもできない
入社2年目のワーカープログラマーが大量に巣食ってますな。
- 113 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 08:50:31 ]
- たぶんランタイム入れてないとかそういう落ち
こういうのは初心者ユーザー向けの板で質問した方が早く解決する
- 114 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 09:08:59 ]
- >112
それお前のこと?
- 115 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:16:46 ]
- >>112 MSのマニュアルをかいつまんだ時間だけで人格者ぶるお前のこと。
相手からエラーログが毎回もらえるような、 そんな馴れ合いができるほど社会は甘くねーよ。
- 116 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:51:11 ]
- どーせmsvcrt80.dllがないとかそんなメッセージだろ
- 117 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 12:43:24 ]
- delphiユーザだった俺にぴったりのサイトある?
C++のコンソールアプリケーションはマスターしたけど、イベントハンドラになるとdelphiとまったく違ってさっぱりわからない・・・・・
- 118 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 14:34:14 ]
- VC2005を使っています。
質問させてください。 コンソールアプリからwindowを呼び出すことは可能でしょうか? 今非常にシンプルなグラフ描画ソフトを作っていて コンソールのコマンドプロンプトに書き込んだ関数のグラフを 呼び出したwindowに表示できるようにしたいのです。 わかる方いらっしゃいましたらよろしくお願いします。
- 119 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 14:36:47 ]
- 何いってるかわからない
- 120 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 15:39:07 ]
- Win32アプリ + コンソール画面 = コンソールアプリ
- 121 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 16:32:36 ]
- WinMainではなくmainから開始してウインドウを表示したいわけだな?
- 122 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 17:18:20 ]
- 宇宙人?
- 123 名前:デフォルトの名無しさん [2007/12/09(日) 17:29:00 ]
- コンソール
window 意味わかりますか?
- 124 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 18:30:54 ]
- 質問です。
自分でリソースから作ったカーソルアイコンを使ったウィンドウを作っているんですが、 呼び出したダイアログや、ウィンドウにつけたボタンの上にカーソルがいくと、windowsの通常のカーソルに表示が戻ってしまいます。 どうしたら回避できるのでしょうか?
- 125 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 19:06:20 ]
- ダイアログやボタンを自作する
- 126 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 19:10:59 ]
- 自作ってリソースから作るって事じゃなくて?どうゆーことでしょ?
- 127 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 19:39:35 ]
- >>121
説明の仕方が悪くて申し訳ありません。 そのとおりです。 いろいろ調べてるんですがなかなか見つからなくて・・・
- 128 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 19:49:39 ]
- >>127
コンソールアプリといっても、 最初にコンソールウィンドウが提供されるだけで、 後は普通のアプリと全然変わらんよ。
- 129 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 20:19:33 ]
- hHandleの取得方法がわかんないんだろ
- 130 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:13:07 ]
- グラフ表示するプログラムはできてるんだろうから
C:\>グラフ表示するプログラム.exe
- 131 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:24:27 ]
- 今VS2005でMFCの勉強をしているのですが、
ダイアログボックスを表示するプログラムで、 void Csample01View::OnTestHello() { // TODO: ここにコマンド ハンドラ コードを追加します。 CMyDialog dlg; //CMyDailogクラスのインスタンス dlg.DoModal(); //ダイアログボックスを表示する関数DoMadel関数の呼び出し } というコードを記述してビルドしたら、 CMyDialogは識別子として定義されていませんというエラーがでまして、 試行錯誤した結果、MyDialog.hというダイアログ・クラスが定義されているヘッダーファイルを、 stdafx.h sample01.hより下(最初はどんなヘッダーファイルよりも上においていました) においたらうまくいきました。これはこれで安心したのですが、 なぜインクルードする順番を変えると、 ビルドが成功したり、失敗したりするのでしょうか? ものすごく初歩的なことを聞いているような気がするのですが、 ご存知の方、どうかご教授お願いできないでしょうか? このもどかしさをどうにかしたいので。
- 132 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:38:36 ]
- CDialogの継承クラスなのに、CDialogの定義が見つからないからじゃないの?
- 133 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:56:35 ]
- >>132さん、お早い返答ありがとうございます。
なるほど、stdafx.hかsample01.h(CViewクラスが入っていると思われる) にCDialogクラスが定義されていて、 それより先にMyDialog.hをインクルードしたからということでしょうか?
- 134 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:58:05 ]
- >>132さん、お早い返答ありがとうございます。
なるほど、stdafx.hかsample01.h(CViewクラスが入っていると思われる) にCDialogクラスが定義されていて、 それより先にMyDialog.hをインクルードしたからということでしょうか?
- 135 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:00:39 ]
- 申し訳ありません。初心者のせいか2回も書き込んでしまいました。
本当に申し訳ありませんでした。
- 136 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 23:01:02 ]
- >>131
プリコンパイル済みヘッダ絡みの問題だな、これは。 詳細はコンパイラオプション /Yu の説明を見てくれ。 今回の場合、プリコンパイル済みヘッダの使用としてstdafx.hが指定されていただろうから、 MyDialog.hを一番上に置いている場合、#include "stdafx.h"以前の内容は 全て生成済みのプリコンパイル済みヘッダに含まれていると解釈され、 実際にはコンパイルされなかった。よって識別子が未定義とのエラーが発生した。 普通なら、MyDialog.hの時点でCDialogが未定義とのエラーが出るはず。
- 137 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 23:06:24 ]
- >>136さん、なるほど非常にわかりやすいです。
stdafx.hとは、そのような機能を持っていたのですね。 これで胸のつっかえが綺麗さっぱりとれました。 >>132さん、>>136さん、教えてくださって本当にありがとうございます。
- 138 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 09:54:47 ]
- マルチポストですが失礼します。
VC++ 6.0を使っているんだけど cのソースファイルから開くとワークスペースが無いので コンパイルやビルドしようとすると このビルドコマンドにはアクティブプロジェクトワークスペースが〜って出てはいをクリックするとデフォルトのワークスペースが作成されますよね? でも、今私が見ているソースは主にwin32アプリケーションなので プロジェクトの設定がwin32アプリケーションの方が都合が良いわけです。 デフォルトのワークスペースをwin32アプリケーションに対応する方法などはありませんか?
- 139 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 13:58:57 ]
- 普通にプロジェクトを作りましょう
- 140 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 17:46:42 ]
- VC++/CLIです。
String^をSTLのstringに変換する最適な方法を教えてください。
- 141 名前:デフォルトの名無しさん [2007/12/10(月) 19:33:55 ]
- 一つのpictureBoxに複数のImageファイルを表示させたいんですが、どうすればよいでしょうか?
- 142 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 19:58:07 ]
- 位置をずらして表示
- 143 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:24:42 ]
- すまんがきれいに分数を表現するにはどうすればいいですか?Texみたいに。
それと割り算の筆算なんか表現できないかと・・・。
- 144 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:30:46 ]
- 電卓の液晶に比べたら、はるかに解像度高いんだから楽勝だろ
- 145 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 22:37:08 ]
- >>140
Visual C++ 2008なら、msclr::interop::marshal_as<std::string>が一番楽だろう。 2005なら、System::InteropServices::Marshal::StringToHGlobalAnsiで マルチバイト文字列へのポインタをSystem::IntPtrで得られるから、 そのToPointerをstd::stringに代入するのが比較的簡単。 ポインタはMarshal::FreeHGlobalで解放すること。 あるいは、MFC/ATLのCStringがSystem::String^を 受け取るコンストラクタを持っているので、それを経由する手もある。 ただし、std::stringにしたいのだから、それにあわせてCStringAを使う。
|

|