- 1 名前:誰も立てないから・・ [2007/11/30(金) 22:40:42 ]
- Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5。
- 267 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:15:57 ]
- for Vistaと書いてありますがXPでも使えるという罠です
- 268 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:26:08 ]
- ありがとうございました、早速ダウンロードしてみます!
- 269 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:37:46 ]
- 今までBorlandC++でコンパイルできてたソースをVC++でコンパイルしてみたら、
○ 番目の引数を 'char [○]' から 'LPCWSTR' に変換できません。 というエラーが大量に出てきました。 ヘルプで調べて、暗黙の変換をしようとすると出るから明示的に型キャストしろ、 とあったので、 (LPCWSTR)"文字列" という形にしたところほとんどのエラーは消えたのですが、 CreateWindow関数の第二引数だけ、このやり方でも同じエラーが出てしまいます。 文字列を一度char配列に格納して型キャストしたポインタを入れてもだめでした。 どうしてなのでしょうか?
- 270 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:40:23 ]
- >>269
今のVCはUnicodeがデフォだから。 両方で共通に使いたいならANSIビルドにすればいいし UNICODEのままでやるつもりなら、_T()マクロとか、TCHAR、LPCTTRとか駆使して書き換え。
- 271 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:41:57 ]
- あと、とりあえずなんでもキャストすんな。
文字列は、_T("")でくくれ "string" -> _T("string")
- 272 名前:デフォルトの名無しさん [2007/12/21(金) 17:42:33 ]
- oshiete1.goo.ne.jp/kotaeru.php3?qid=2236318
- 273 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 17:46:35 ]
- なるほど、文字コードの違いのせいでしたか。
ありがとうございました。
- 274 名前:デフォルトの名無しさん [2007/12/22(土) 07:37:22 ]
- WinXP、VisualStudio2005ExpressEditionです。
パソコンの名前:AAA XPのユーザー名:BBB VisualStudio2005で操作するプロジェクト名:CCC のときに、「CCC.BBB.AAA.user」という名前のファイルがプロジェクトのあるフォルダに勝手に作成されています。 個人情報が漏れそうで怖いんですが、VisualStudio2005で作成した実行ファイルにもユーザー名が埋め込まれていたりしますか? それとも、.userのファイルだけ気をつければパソコンの名前やユーザー名は分からないですか?
- 275 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 08:50:51 ]
- わかります
- 276 名前:274 mailto:sage [2007/12/22(土) 09:25:47 ]
- 作成した実行ファイルを右クリックして見られるプロパティにはユーザー名が含まれていないようでした。
ファイルのヘッダ?みたいな部分に書かれているんでしょうか? 確かめる方法と消す方法を教えてください。 OSのユーザー名は最初に作成したadministrator権限のなので、変更は不可能みたいです。
- 277 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 10:04:06 ]
- exeをバイナリエディタで検索かけてもユーザー名は検出されなかったけど
>>275は適当言ってるだけじゃねーの?
- 278 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 11:29:12 ]
- VC++もMFCがあればVBとあまり変わらないんですね。
なんかほっとしました。
- 279 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 13:42:39 ]
- ?!
- 280 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:19:49 ]
- デバッグ情報出力するようになってると
プロジェクトのフォルダのパスが埋め込まれるから マイドキュメントなんかにいれてるとわかる。
- 281 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:39:48 ]
- よくわからないんだけど普通のC++とかとVisual C++ってのは違うの??
- 282 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:46:37 ]
- C++ってのはプログラミング言語の名前。
VC++ってのはC++でプログラムを作成するのをサポートしてくれるソフトウェア。 htmlとホームページビルダーみたいな関係だと思えばいい。
- 283 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:48:11 ]
- じゃあここはVC++を使ったC++プログラミングスレというわけか、さんくす
- 284 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:23:27 ]
- ある本を参考にして、勉強しています。
プログラムを開こうとすると、 「Classview情報ファイルにアクセスできません。ClassView 情報を取得できません。」 と怒られるのですが、何が原因なのでしょう? ファイルが読み取り専用から、チェックを外しています。
- 285 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:53:43 ]
- そのある本とやらを教えろ。話はそれからだ
- 286 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 17:05:38 ]
- ClassView情報ファイルを消して、再作成させろ。
*.clwだっけ?たしか。
- 287 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 17:31:19 ]
- >>286
有難うございます。 .clw? 等を全て削除。(主ファイルだけ残しました。) 再びVCを立ち上げて再ビルド。 何故か 成功 何故ですか?w バグが怖いので、最初から作ります。
- 288 名前:デフォルトの名無しさん [2007/12/22(土) 20:09:49 ]
- 環境 VC++ 6.0 SDK
初めてUnicodeでのビルドに挑戦して文字列操作に悩んでます。 プリプロセッサで _UNICODE 設定し、リンクアウトプットに wWinMainCRTStartup としてメイン関数は wWinMainにしました。 例えば static LPTSTR szAppPath; GetModuleFileName(NULL, szAppPath, MAX_PATH); のようにやると、コンパイルは通るのですが、実行時にデバッグ画面に移ります。 これを TCHAR szAppPath にすると問題有りません。 マルチバイトとワイドバイトの違いとchar周りを調べてるのですが、いまいち理解出来ずに居ます。 助言頂けたら幸いです。
- 289 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:19:21 ]
- >>288
static LPTSTR szAppPath; LP〜はポインタ。実質 static wchar_t* szAppPath; と同義。TCHAR だとコンパイルとおらないと思うんだけど?
- 290 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:41:47 ]
- static TCHAR szAppPath;
ならコンパイルは通るでしょ。ただ1文字分しか領域が無いから落ちると。 static TCHAR szAppPath[MAX_PATH]; でOK
- 291 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:43:48 ]
- あ、エラーは2行目か
- 292 名前:288 mailto:sage [2007/12/22(土) 21:25:05 ]
- 分かりづらかったですね、すいません。
そうです、TCHARで配列指定すれば通ります。 LPTSTR指定すると2行目のGetModuleFileName関数で落ちます。
- 293 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:31:42 ]
- LPTSTRとか訳の分からないものが出てきたら、それを選択してF12押すと正体が見れるよ。
ただ>>288はMBCSとかUnicodeとか関係のない、ただのロジックミス。
- 294 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:51:22 ]
- というか、ぬるぽだろそれは。
実体を確保してやれよ。
- 295 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:51:46 ]
- wWinMainCRTStartup としてメイン関数は wWinMain
みたいないらんことする必要ない
- 296 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:12:03 ]
- >>292
今までこんなことやったことあるか? static char *szAppPath; GetModuleFileName(NULL, szAppPath, MAX_PATH);
- 297 名前:288 mailto:sage [2007/12/22(土) 22:17:50 ]
- 8bitでの char *szAppPath; と同様ということですね。
初めて16bitを扱うので、ちょっとまだ混乱気味ですが TCHAR szAppPath[MAX_PATH]; にするか、 もしくはAlloc関数などで動的確保すれば自分のやりたい事が出来るという事であってますでしょうか・・・。
- 298 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:31:34 ]
- 別に今まで通り普通に作るだけだろ
今までどうやってたか不思議
- 299 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 23:00:51 ]
- サンプル探して真似するだけ
慣れるまでは自分で勝手にコード書いちゃダメ
- 300 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 23:51:51 ]
- サンプルがなかなか見つからない
- 301 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 00:46:34 ]
- サンプルは簡単に見つかる
- 302 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 02:07:12 ]
- Visual C++ (やりたい事) でぐぐれ
- 303 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 03:17:02 ]
- Visual C++ アクションゲーム
出てこないよ
- 304 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 03:40:40 ]
- いっぱい出てきたよ
- 305 名前:274 mailto:sage [2007/12/23(日) 04:25:21 ]
- >>280
プロジェクトのフォルダの絶対パスに、ユーザー名が含まれていなければセーフってことですね。 それならたぶん大丈夫です。ありがとうございました。
- 306 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 05:07:52 ]
- >>304
詳しく
- 307 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 06:16:47 ]
- VC6のやつ 他にMSDNのサンプルにもある
ATL\Include\ATLBASE.H(4934): GetModuleFileName(_pModule->GetModuleInstance(), szModule, _MAX_PATH); ATL\Include\ATLBASE.H(4976): GetModuleFileName(_pModule->GetModuleInstance(), szModule, _MAX_PATH); ATL\Include\ATLBASE.H(5042): GetModuleFileName(m_hInst, szModule, _MAX_PATH); ATL\Include\ATLBASE.H(5925): GetModuleFileName(pM->m_hInst, szModule, _MAX_PATH); ATL\Include\ATLBASE.H(5987): GetModuleFileName(pM->m_hInstTypeLib, szModule, _MAX_PATH); ATL\Include\ATLWIN.H(1353): GetModuleFileName(_Module.GetModuleInstance(), szModule, _MAX_PATH); ATL\Include\ATLWIN.H(1379): GetModuleFileName(_Module.GetModuleInstance(), szModule, _MAX_PATH); CRT\SRC\ASSERT.C(151):if ( !GetModuleFileName( NULL, progname, MAX_PATH )) CRT\SRC\CRT0MSG.C(242):if (!GetModuleFileName(NULL, progname, MAX_PATH)) CRT\SRC\DBGRPT.C(477):if (!GetModuleFileName(NULL, szExeName, MAX_PATH)) CRT\SRC\HEAPINIT.C(92):GetModuleFileName(NULL,env_app_name,sizeof(env_app_name)); CRT\SRC\STDARGV.C(103):GetModuleFileName( NULL, _pgmname, sizeof( _pgmname ) / sizeof(_TSCHAR)); MFC\SRC\APPINIT.CPP(79): VERIFY(::GetModuleFileName(m_hInstance, szBuff, _MAX_PATH)); MFC\SRC\APPUI1.CPP(109): GetModuleFileName(NULL, szAppName, _MAX_PATH); MFC\SRC\CTLLIC.CPP(36): ::GetModuleFileName(hInstance, szPathName, _MAX_PATH); MFC\SRC\CTLREG.CPP(87): ::GetModuleFileName(hInstance, szPathName, _MAX_PATH); MFC\SRC\DLLINIT.CPP(118): GetModuleFileName(m_hModule, szName, _countof(szName)); MFC\SRC\DUMPSTAK.CPP(58): cch = GetModuleFileNameA((HINSTANCE)memoryBasicInfo.AllocationBase, MFC\SRC\FILECORE.CPP(700): ::GetModuleFileName(hInst, szLongPathName, _MAX_PATH); MFC\SRC\OLETYPLB.CPP(75): GetModuleFileName(AfxGetInstanceHandle(), szPath, _MAX_PATH); MFC\SRC\VIEWHTML.CPP(447): if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH)) MFC\SRC\VIEWHTML.CPP(468): if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH))
- 308 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 17:27:27 ]
- JPEGの画像を扱いたいプログラムを構想中です。
現在 VC6.0なのですが、難しいですか? 少し検索してみたのですが、VC7.0には 「CImageクラスという便利なクラスが追加されました。」 と言う事なのですが、VC7.0にした方が良いですか? その時の利点と欠点を分かり易く説明ヨロ
- 309 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 17:53:33 ]
- 何が利点・欠点になるかは作るモノ次第。
他にもlibjpeg、Susie plug-in、GDI+とかいろいろあるから、自分で調べて判断してくれ。
- 310 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 18:17:46 ]
- Susieをスーシーって読んでた俺は間違いなくおかしい
友人はスージーと読んでいてよく議論した
- 311 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 18:18:37 ]
- むしろスシエって読んでた
- 312 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 19:32:02 ]
- CImageあれば使えばいいし、
CImageなかったら作れないものでもないし
- 313 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 21:21:33 ]
- >>307
マジですか うほー
- 314 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 23:06:54 ]
- DWORD(unsigned long)をprintfなんかで表示する場合
%ul と %lu どっちが正しいの?
- 315 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 23:47:03 ]
- >>314
%ulなんてない。%uをlで修飾して、%luが正解だ。 つーか、%ulじゃ単に、%uの後にlが出力されるだけだ。
- 316 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:24:49 ]
- ありがと
- 317 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 09:59:08 ]
- UTF-8の文字列をMS932に変換したいのですが
どのような関数がありますでしょうか?
- 318 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 13:26:04 ]
- MultiByteToWideChar/WideCharToMultiByteやMLangなど。
- 319 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:26:20 ]
- Visual C++ 2008 には Snippet 機能はありますか?
- 320 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:38:17 ]
- 有るが大して役に立つものではない
- 321 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:42:48 ]
- EEですが2005用Snippetどこでダウンロードできますか?
- 322 名前:デフォルトの名無しさん [2007/12/24(月) 14:54:13 ]
- デフォルトのコピーコンストラクタと代入演算子が
生成される条件はなんでしょうか? 常に生成されるのでしょうか? もしそうであれば,「浅いコピー」を勝手にしてもらっては 困るなどの場合,両者をあえて宣言だけして 定義せずに private にしておくなどの方法で 明示的に使えなくするしかありませんか? ちなみに IntelliSense には operator== は出てきません. 自分であえて宣言した場合には出てきますが.
- 323 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:55:31 ]
- d.hatena.ne.jp/kakato1192/20070611/p1
- 324 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 17:02:26 ]
- >>322
>明示的に使えなくするしかありませんか? うん それかboost::noncopyableからprivate派生するという手もある。
- 325 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 17:12:32 ]
- あー後、デフォルトのやつはメンバ変数・基本クラスのコピーコンストラクタ/operator=を呼び出すから
std::iostreamみたいにコピー出来ないものがあってもコピー不可になる。
- 326 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 18:34:21 ]
- MFCでActiveXコントロールを作っています。
それをIEに貼り付けて右クリックイベントを拾ったんですが OnLButtonUp(UINT nFlags, CPoint point) pointに入っている値がどうもコントロール内での位置で これを ClientToScreen(&point)で変換してみたのですが 変換された値が画面上の位置とずれているようです。 画面上の位置を取得するにはどうすればよいでしょうか?
- 327 名前:326 mailto:sage [2007/12/24(月) 18:53:33 ]
- すみません。GetCursorPos()で取れました。
いいのかな。こんなやりかたで。
- 328 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 08:55:54 ]
- オーナードローボタンを作ってみました。
if( nState & (ODS_FOCUS|ODS_SELECTED) ) { } としてフォーカスと選択状態のときに色を変えるようにしたのですが この他にマウスポインタが乗っているときにも色を変えたいのですが そのような状態を取得するにはどうしたらよいでしょうか?
- 329 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 10:14:49 ]
- >>328
TrackMouseEvent 使う。 昔は、WM_MOUSEMOVE でSetCaptureしてたけど、 今はこれ使えるからいいね。
- 330 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 10:34:47 ]
- >>329
ありがとうございます。調べてみます。
- 331 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 23:57:59 ]
- これからVisual C++ 2005 Proを使ってWindowsのGUIアプリを作成しようと思います。
C/C++の知識はあるのですが、CLI等はまだ詳しく知りません。 Visual C++を用いたアプリの作成の経験もありません。 このとき、どのようにしてGUIアプリの制作を始めるのが適切だと思いますか? 1. アプリのフォーム部分のみ.NET Frameworkを使って、 内部の処理はMFCやWinAPIを使ったC++で実装する 2. フォーム部分も内部も全て.NET(CLI)で実装 3. 全てC++とMFCで実装 言語自体が変わってしまう(C++でなくCLIになってしまう).NETはあまり使いたくないです。 ただGUIのデザインはMFCを使ったやり方よりも.NETのフォームデザイナを使用した方が やり易いので、そうい意味で.NETを使うのは魅力的です。 言語をとるか、GUIデザインのしやすさをとるか・・・
- 332 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:00:01 ]
- というか、NetFrameworkなフォームの内部をMFCで作るって、_でそ。
- 333 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:27:44 ]
- Visual C++のCLIでWindowsMediaPlayerコントロールを使用してAVIファイルを再生しようと考えているのですが、
参考書の通りに打ち込んでいるのですがビルドに失敗してしまいます。 Ctlcontrols->からのsetModeやpause、playを使用したコードが'WMPLib::IWMPSettings' のメンバではありません。というエラーになり、 WMPLib::WMPPlayState::wmppsPlayingというコードに対して、以下の2つのエラーが発生します。 @'WMPLib' : 識別子がクラス名でも名前空間名でもありません。 A'wmppsPlaying' : 定義されていない識別子です。 何か設定が必要なのでしょうか?ご教授お願いします。
- 334 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:33:09 ]
- MFCなら間違いはないよ、一応
- 335 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 00:35:03 ]
- >>331
クロスプラットフォームなフリーのGUIライブラリでも使ったらいいんでね?
- 336 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 03:24:20 ]
- >>333
参照追加した?
- 337 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 11:19:29 ]
- Visual C++6.0,および2005を使っています。
2005で作成したソースコードを6.0に移植したいと思っているのですが、 strcpy_sなどの関数が6.0で使用できず困っています。 バッファオーバーランなどの可能性を考慮すると、安易にstrcpyで置き換える事も出来ません。 やりようによっては、strncpyを使うという手段もありますが、これだとstrcat_sをどうしたら良いか分からなくなります。 素直に、VC6.0でもstrcpy_sや、strcat_sを使いたいと思っているのですが、どうしたら良いでしょうか? 何かしらのSDKをインストールすればいいんでしょうか。 一応、Microsoft .NET Framework SDK v2.0はインストールしてみたのですが、その中にこれらの関数は存在しませんでした。
- 338 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:17:28 ]
- >>336
COMコンポーネントでタブをチェックしてOKボタンを押しただけで参照は選択していません。 参照で何を追加すればよいのでしょうか?
- 339 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:29:33 ]
- >>338
どこの操作の話? ソリューションエクスプローラーからプロジェクトを右クリックして 参照・・・選んで新しい参照の追加選んでCOM選んでWindowsMedia Player 選んでOKってやったの?
- 340 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:24:40 ]
- >>339
ツールボックス上で右クリックしてアイテムの選択をクリックし、そこからCOMコンポーネントでWindowsMediaPlayerを追加しました。 そこ際、参照というボタンがあったのですがそれは何もしてなかったので。 ソリューションエクスプローラーからという操作はしていません。
- 341 名前:デフォルトの名無しさん [2007/12/26(水) 15:31:04 ]
- プリコンパイルドヘッダーって,
なければ自動的に作る,あれば使う,ってできませんか? 昔は /YX オプションがあったようなのですが. ヘッダファイル common.h をすべての *.cpp から インクルードしています. common.h にはよく使う ライブラリのヘッダをインクルードし,最後に #pragma hdrstop しています.
- 342 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:42:19 ]
- >>340
で、>>339はやったの?
- 343 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:52:09 ]
- >>342
それはやっていなかったので、今やってみたらエラー数が増えました。
- 344 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 16:05:46 ]
- よかったね
- 345 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 18:31:19 ]
- >337
strcpy_sや、strcat_sなんかたいしたことやってないから 自分で書くかソースコピーして移植
- 346 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 18:34:38 ]
- strcpy_sって何ぞ?
- 347 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 18:36:05 ]
- >>346
VC2003以前から2005以降にプロジェクトもって行くといやというほどお目にかかれるw
- 348 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 18:39:39 ]
- なんか警告対策だっけ、なんだっけ
- 349 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:53:27 ]
- 安全性を向上さしたMS独自の拡張関数。
警告出るけど今まで通りのANCII関数 をちゃんと使えてれば無駄な警告。
- 350 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 20:24:10 ]
- ここでstrsafe.hが奇跡の大復活を
>>341 stdafx.h/cppは駄目なん? /YXは無駄に再作成される事が多く、あまり役に立たなかったので削除された。 たぶん。個人的には無くして正解だと思う。
- 351 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:01:11 ]
- VC++ 2008 Expで、マネージコードとネイティブコードを混在させて
プログラムを作成する方法を教えてください。 プロジェクトはCLR、Win32のどちらで作成するのですか? 具体的にどのようにして2つのコードが識別されるのですか?
- 352 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:07:30 ]
- Std以上ならCRTのソースも付いてるお
- 353 名前:デフォルトの名無しさん [2007/12/27(木) 05:17:15 ]
- VC++ 6.0 SDKです。
半透明ウィンドウを作成しようと色々調べて、 取り敢えずuser32.dllから動的に関数を読み込むやり方までは出来ましたが、 新しい Windows Server 2003 PSDK を入れても SetLayeredWindowAttributes が未定義となってしまいます。 インストールした C:\Program Files\Microsoft SDK\ 以下のlibとincludeフォルダをそれぞれオプションでパス指定しましたがダメでした。 6.0では動的に確保しなければ、6.0以降のAPIは静的に使う事が出来ないのでしょうか・・・? PlatformSDKは最新のだと6.0に対応してないそうなので、 www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm から落として、CoreSDKのみインストールしました。 どうか助言のほどよろしくお願いします。
- 354 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 05:25:01 ]
- #define _WIN32_WINNT 0x0500
- 355 名前:デフォルトの名無しさん [2007/12/27(木) 10:23:41 ]
- 二つのスタティックライブラリ a.lib b.lib があります。
b.lib は a.lib の関数を呼び出しています。 b.lib を使ったアプリケーションを作成するにあたって、 a.lib も b.lib もリンカに指定しなければならないのですが、 b.lib をビルドするときに a.lib の必要なものも 取り込んでしまうということはできるのでしょうか? リンカに「あれがない、これがない」と連鎖的に ないないと言われないようにしたいのですが。 なお、すべて自作のものなのでライセンス上の問題はありません。
- 356 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:43:38 ]
- >>355
VC++の話だよな? b.lib 使うときに b.h もインクルードすると思うが、 そのb.h の中に、 #pragma comment(lib, "a.lib") #pragma comment(lib, "b.lib") 両方入れておけば? つか、a.hにa.libの設定を入れてb.hでインクルードすればいいか?
- 357 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:44:50 ]
- あとスタティックリンクなら、両方まとめて1つのlibにするとか・・・
- 358 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:59:33 ]
- 質問させてください.
今,あるプログラム内で_beginthreadにより別ウインドウを作成します.そのウインドウを作成する 具体的な関数(hogeとする)にデータを渡したいので構造体のポインタ(data *a)で渡しています. _beginthread(hoge,0,a)のかたちです. 関数hogeの中でdata *b;を宣言して b=(data *)aにして利用するのはできるのですが, 渡したデータを書き換えたあと(b->member=hogehoge;) もとのメイン関数の中でa->memberの値は書き換わっているのでしょうか? ポインタの基本的なことなんですが混乱してきました・・・ 今のプログラムでは書き換わっていません. どなたかご教授お願いします.
- 359 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 11:08:43 ]
- >>358
マルチスレッドでの共有変数の読み書きはタイミングの問題が付きまとうから ちゃんと同期してやらんといかんよ。
- 360 名前:デフォルトの名無しさん [2007/12/27(木) 11:09:39 ]
- 変わらない
- 361 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 12:33:37 ]
- >>359
おっしゃるとおり同期の問題でした. メイン関数側に書き換わったのを待つループを入れたら 解決しました.ありがとうございました.
- 362 名前:デフォルトの名無しさん [2007/12/27(木) 22:04:58 ]
- 質問です。
アニメーションを表示するためのプログラムを詳しい人に書いてもらったのですが 「アニメーション表示。vcproj」(?)というファイルを開いてデバックの開始をすると 「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」 というエラー表示がでます。 オブジェクトファイルというのはもらったファイルの中にあるのですが リンクするとは、どうすればいいのでしょうか? 教えてください。 ちなみに私はまったくC++わからないので 詳しく教えていただけるとありがたいです。
- 363 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 22:47:12 ]
- C++わからないならバイナリ貰えよ。
読めないならソース貰っても意味ないし。
- 364 名前:364 mailto:sage [2007/12/27(木) 23:48:57 ]
- Visual C++ で「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」というエラーが表示されます。
人にC++を使ってアニメーションを表示するプログラムを書いてもらいました。 もらったファイルの「アニメーション表示.vcproj」というファイルを開いてデバッグ開始をすると 「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」というエラーが表示されます。 調べたところオブジェクトファイルをリンクする必要がある、というところまではわかりましたが オブジェクトファイルと何をどうやってリンクさせるのかわかりません。 しかも送ってもらったファイルの中にはobject fileというものが3つ(AssemblyInfo,stdafx,アニメーション表示)あります。どれを使うのでしょうか? C++についてまったく知識がないので全くわかりません。 出来るだけ詳しく教えていただけたら幸いです。
- 365 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 23:56:27 ]
- リビルドで一発じゃね?
- 366 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 00:41:40 ]
- >>351
CLRのプロジェクトを作れ。 ソース内で#pragma unmanagedと書くと、そこからアンマネージコードになる。 #pragma managedと書くとマネージコードが始まる。 どっちも現れる前のファイルの先頭はマネージコード。
- 367 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 08:15:29 ]
- プロジェクトはWIN32プロジェクトです。
環境はXP VC++2005です。 参考書のリソースの追加という項目を読んでいるのですが、 「ファイル」→「新規作成」の中にリソーススクリプトという選択肢がある、 と参考書には書いてありますが、VC++2005には見つかりません。 代わりにリソーステンプレートを選択してやってみましたが、 "resource.h"が作成されていないため、エラーとなりました。 どうすればこのプロジェクトにリソースを追加することができるでしょうか? よろしくお願いします。
|

|