くだすれVisual C++(超初心者用)
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2005/06/15(水) 05:37:18もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Visual C++使いが優しくコメントを返しますが、
お礼はVisual C++の布教と初心者の救済をお願いします。
Visual C++ Home Page
http://www.microsoft.com/japan/msdn/visualc/
0002デフォルトの名無しさん
2005/06/15(水) 07:27:420003デフォルトの名無しさん
2005/06/15(水) 08:11:280004デフォルトの名無しさん
2005/06/15(水) 08:50:200005デフォルトの名無しさん
2005/06/16(木) 19:12:000006デフォルトの名無しさん
2005/06/16(木) 19:56:57シミュレーションゲームやっててだるくなって思ったんやけど、
マウスやキーボードをプログラムで操作して自動レベル上げみない事できますか?
具体的な方法はいいから、できるかどうかだけ教えて。
あと、データ書き換えれば良いってのも無し。
0007デフォルトの名無しさん
2005/06/16(木) 20:00:34できます。
ロボットハンドとCCDカメラ、それとそれなりのAIを搭載したロボットでも作ればもう、ばっちり。
00086
2005/06/16(木) 20:54:53はいはい
そんな面倒な事せんでも,画面からボタンとステータス欄の座標を取って
ステータス欄の画像を解析して、マウスのカーソルを動かしてクリックさせたらしまいやん。
ただ単に、これがVC++で他のソフトに干渉(?)して走らせる事ができるか知りたかっただけ。
つーか、ロボットハンドとCCDカメラとAI搭載ロボットって全部抽象的な表現やね。
0009デフォルトの名無しさん
2005/06/17(金) 12:31:19鼬害
0010デフォルトの名無しさん
2005/06/17(金) 17:59:28GetDCとかSendInputとか使えるんじゃ?
0011デフォルトの名無しさん
2005/06/26(日) 14:24:56これは最適化が付いていないと聞いたのですが本当ですか?
また、MFCは使えるのですか?
Windowsゲームをこれで作りたいのですが、買うまでに勉強しておいた方がいいものはなんでしょうか?
今、C/C++を勉強しています。
0012デフォルトの名無しさん
2005/06/26(日) 14:50:07どういう意味かわからんが、今時最適化できないコンパイラなんて
ありえないし、C++のためにあるようなMFCが使えないことも
ありえん。買うまえに勉強しておく、という選択肢の意味も不明。
でも、まあ楽しんでね♪
0013デフォルトの名無しさん
2005/06/26(日) 15:07:03>今時最適化できないコンパイラなんてありえないし、
本当ですか?
0014デフォルトの名無しさん
2005/06/26(日) 15:15:250015デフォルトの名無しさん
2005/06/26(日) 15:16:18けどVC Toolkitを入れれば一応最適化は手に入れられる。
0016デフォルトの名無しさん
2005/06/26(日) 23:52:510017デフォルトの名無しさん
2005/06/26(日) 23:54:41#include <iostream>
int main()
{
std::cout << "hello, world" << std::endl; //この行、字下げしている。
}
0018デフォルトの名無しさん
2005/06/27(月) 19:39:27どんなゲームかわからないけどMFCは出番少なそう。
DirectX等を使うのであれば、COMとATLの参考書を読んでおいたほうがいいかも。
でもね・・・
COMまわりはC#のマネージドから使うほうが格段に楽ですよ。
というか、いまさらC++でやるのは何かの罰ゲームだと思う。
0019デフォルトの名無しさん
2005/06/27(月) 20:49:440020デフォルトの名無しさん
2005/06/27(月) 21:32:38人によって全く違う意見ですね。
0021デフォルトの名無しさん
2005/06/28(火) 00:21:4011はただ、使えるかどうかを訊いているのだから
余計なことを言う必要は全くなし。
0022デフォルトの名無しさん
2005/06/28(火) 05:10:59それをきっかけに話が進むのはアリだろ。
0023yasu
2005/06/28(火) 09:18:36家と学校のPCに入れたいのですがVisualStudio.netのアカデミック版
だとライセンス認証 (プロダクト アクティベーション)が必要なよう
ですがVisualC++.netの アカデミック版だと必要ないのでしょうか
0024デフォルトの名無しさん
2005/06/28(火) 15:19:28アクティベーションが無いからと言ってライセンス違反をしていい理由にはならない。
0025デフォルトの名無しさん
2005/06/28(火) 16:26:36どこが、ライセンス違反?
学生が使う分には、OK。
0026デフォルトの名無しさん
2005/06/28(火) 18:28:25認証もその友達にしてもらい、
それを譲ってもらって使用って方法は可能ですか?
0027デフォルトの名無しさん
2005/06/28(火) 19:27:15思い切りダークゾーン。
せめてその学生の友達から買い取って
自分の名義で認証すべし。
0028yasu
2005/06/28(火) 21:56:00ライセンス違反。
spokeは、譲渡不可。
マイクロソフトのHPのspokeに書いてある。
0029デフォルトの名無しさん
2005/06/29(水) 17:04:33うっせ、ヴォケ!w
0030デフォルトの名無しさん
2005/06/29(水) 19:43:40>>28
ぃゃ、ライセンス違反でも使用出来るのか出来ないのかを知りたいのです。
実際に使用するのではなく、そこらへんの仕組みを知りたいのです。
要は、郵送で認証を終えた後に、アクティベーションやスパイウェアのようなもので、
本当に認証を受けた人が使っているか、のような確認が行われているのでしょうか?
0031デフォルトの名無しさん
2005/06/29(水) 19:47:320032デフォルトの名無しさん
2005/06/29(水) 22:08:51なんか意味のないことを訊いてるなぁ。
>>30
だから、チミの名前で認証すれば何も後ろめたいことはないんだって。
そのために「その友達から買い取れ」と書いたのだ。
もっともその友達が自分の名義で認証を済ませてしまったなら、もう駄目だが。
0033デフォルトの名無しさん
2005/06/30(木) 01:14:260034デフォルトの名無しさん
2005/06/30(木) 02:48:43の水掛け論だろ。
てか2chでも、やるからって秘密するもんなの?
薬板なんてモロなのにさ。
0035デフォルトの名無しさん
2005/06/30(木) 12:14:47不正使用していたコンピュータを全部強制撤去した実績がある。
まあ、 26 君はいい子だから大目に見てくれるかもね。
0036デフォルトの名無しさん
2005/06/30(木) 14:24:08003726
2005/06/30(木) 19:01:32え、それ、マジなの((;゚Д゚)ガクガクブルブル
でも人の家に勝手に入って来れないよね。
てか>>36の話とか、もし嘘だったらマズイよね?
0038デフォルトの名無しさん
2005/06/30(木) 19:27:36某サークルなんとかじゃあるまいし
0039デフォルトの名無しさん
2005/06/30(木) 22:05:180040デフォルトの名無しさん
2005/06/30(木) 23:18:27CEditが2つあり垂直方向のスクロールを同期させたいのです。
とりあえずEN_VSCROLLに関数を割り当ててLineScrollを使って
同期が取れるようになったのですが、スクロールバーの
摘まみを動かしたときに片方しか動いてくれません。
摘まみを動かしたときも同期が取れるようにするにはどうしたらいいでしょうか。
コンパイラはVC++6.0です。
0041デフォルトの名無しさん
2005/07/01(金) 15:39:35MSだから、情報隠蔽も確実にやるからな。
0042デフォルトの名無しさん
2005/07/03(日) 16:19:25ビルドしたところ、以下のメッセージが出てしまいました。
error LNK2001: 外部シンボル ""char * __cdecl fgets(char *,int,struct _iobuf *)" (?fgets@@$$J0YAPADPADHPAU_iobuf@@@Z)" は未解決です。
該当するソースはこのようになっています。
FILE *fstream;// ファイルディスクリプタ
char tLine[256];// 一行読み込み用
if( fgets( tLine, 128, fstream ) == NULL ){
if( ferror( fstream ) ){// 一行読み出しエラー
break;
}
break;// EOFに達した
}
その他,atoi、strstrなど、Cランタイムライブラリ関数(?)関連のものは
みな外部シンボルが未解決と出るんですが…何か参照設定が足りないのでしょうか?
ご教授いただければ思います。
0043デフォルトの名無しさん
2005/07/03(日) 16:25:03マルチかよ
0044デフォルトの名無しさん
2005/07/03(日) 19:02:26プロジェクト→プロパティ→C/C++→コード生成→ランタイムライブラリ
プロジェクト→プロパティ→C/C++→詳細→呼び出し規約
はそれぞれ何になってますか?
0045デフォルトの名無しさん
2005/07/15(金) 10:43:21setup.exeを起動したら
ファイルを一時ディレクトリにコピーできませんでした。
このファイルが存在することを確認してから、
セットアップを再実行してください
ってメッセージがでてインストールできないんですが同じ現象
に陥った人っていますか?
WinXPHomeでVS2003はMSDNから送られてきたCD(という説明で正しい
のかなぁ)です。
CDからがだめかと思ってネットワークインストールをしようと
しても同様のメッセージが表示されてしまった.....
0046デフォルトの名無しさん
2005/07/15(金) 12:45:48どこかにインストールに必用なHDDの容量が書いてあるはず
0047デフォルトの名無しさん
2005/07/15(金) 13:12:28ありがとう
でも、HDDは100GB以上あまってるし、別のパソコンにはインストール
できたんですよね。
一時ファイルのディレクトリ指定が間違ってるのかなぁ
環境変数の「TEMP」や「TMP」だと勝手に思ってるんだけど違うかな
0048デフォルトの名無しさん
2005/07/15(金) 15:03:49恐らくは、システムのあるディスクの個人環境の一時ファイルディレクトリに置くのでは?
アーカイブ→setup.exeとパッケージ→インストールイメージと展開されるはずだから
結構要領いるし、あとはセキュリティ辺りかな?
0049デフォルトの名無しさん
2005/07/16(土) 01:31:19俺はVS2003は客先で使わせてもらって2回(2社)ほどインストしたが
どっちもMSDNのインストールでCDからファイルが読めなくて正しくインストールできなかったよ。
本体はちゃんと入ったけどね。
なんかCDにコピープロテクトかけようとして失敗して正規版でも正しくインスコできないとか、
単にケースがアレだから壊れやすいとか、そんなのかな?と思ってます。
ま、なんとか騙してインストール継続させれば問題ない(MSDNの場合は多少ファイルが欠けててもそこだけ見れないだけであまり害は無い)
005045,47
2005/07/19(火) 11:28:00ありがとーう!!
週末パソコン触っていなかったのでレス遅れました。
結局インストールできました。
原因はTEMPの問題でした。
ユーザー環境変数にTEMPの指定が間違っていて、インストールした
CD-ROMにTEMPディレクトリを作ろうとして失敗していました。
初歩的なミスですね....スミマセン
0051デフォルトの名無しさん
2005/07/21(木) 19:12:39なんだよ、Win98じゃ使えねぇのかよ。。。
Win98で使える方法ありませんか?
いや、おとなしくOEMのXPHomeでも買ってきます・・・・・・・よ目
0052デフォルトの名無しさん
2005/07/22(金) 00:46:270053デフォルトの名無しさん
2005/07/22(金) 03:07:270054デフォルトの名無しさん
2005/07/22(金) 22:46:33初期化子の数が多すぎます。と出てコンパイルできません。
#include <windows.h>
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
) {
MessageBox(NULL , "ok" , "メッセージです。" , MB_OK);
return 0;
}
環境はvisual studio.net the spokeのvisualC++.netです。
どなたか教えてください。
お願いします。
0055デフォルトの名無しさん
2005/07/22(金) 23:06:48それコピペしてコンパイルしたけど大丈夫だった
0056デフォルトの名無しさん
2005/07/23(土) 00:51:44俺もその本買った。
すっげわかりにくい。
ちなみにBCCでもコンパイルできた。
0057デフォルトの名無しさん
2005/07/27(水) 03:58:12開発環境 : VisualC++6.0
jpegファイルを書き出そうとしてgdi+を使えばいいのは分かりました。
そこで
Microsoft Platform SDK for Windows Server 2003 SP1
をインストールしました。
ヘッダファイルのパスを通して
#include < gdiplus.h >
してみたんですがエラーが大量に出てきます。
どうしたらいいのでしょう?
よろしくお願いします。
0058デフォルトの名無しさん
2005/07/27(水) 07:41:13gdiplus.hより先にwindows.hをインクルードする必要がある。(WIN32_LEAN_AND_MEAN抜きで)
0059デフォルトの名無しさん
2005/07/27(水) 12:46:12環境が一部しか出てないのにありがとうございます。
MFCサポートしていてstdafx.hもインクルードしている状況下でのエラーでした。
エラー内容でググったら解決してしまったので分かるように記します。
エラーの内容は
error C2065: 'ULONG_PTR' : 定義されていない識別子です。
など複数出てました。
> 最新のPlatformSDKをインストールして、
> そのヘッダをVC6付属のものより優先度を上げれば良いと思います。
とあり、stdafx.hより先にgdiplus.hをインクルードすることで解決しました。
お騒がせしてすみません。
0060デフォルトの名無しさん
2005/07/27(水) 14:05:47それ違う。
includeやlibの検索の優先順位の設定を変更しろってこと。
includeする順番を変えるのは、矛盾したりするからよくない。
006157
2005/07/27(水) 19:26:59VisualC++6.0でメニューから
ツール→オプション
でオプションダイアログを起動し
「表示するディレクトリ(S)」を「インクルードファイル」に変え、「ディレクトリ(D)」の入力フォームで
C:\Program Files\Microsoft Platform SDK\Include (Microsoft Platform SDK for Windows Server 2003 SP1のパス)
を一番上に設定しました。
その後
#include "stdafx.h"
#include "MyDefinedDlg.h"
#include <gdiplus.h>
の順番にヘッダを読み込むと>>59のエラーが出るので
#include "stdafx.h"
#include <gdiplus.h>
#include "MyDefinedDlg.h"
とするのは問題ないのでしょうか?
0062デフォルトの名無しさん
2005/07/27(水) 19:28:08普通はgdiplus.hもstdafx.hの中でインクルードするもんだと思うけど。
006460
2005/07/27(水) 21:00:12問題ないです。
というか、普通はそうします。
MyDefinedDlg.h内で、gdiplus.h内のものを使っているんだよね?
>>62さんの言うように、stdafx.h内でincludeすると、
プリコンパイル済みヘッダという仕組みによって、
コンパイル時間が短縮されます。
同じプログラム内で矛盾した定義をしない、という点でもオススメ。
006557
2005/07/29(金) 03:52:55現状ではstdafx.h内部でgdiplus.hを呼び出しています。
Debugモードにて、MyDefinedDlg.cpp内部でGdiplus::GdiplusStartup関数を使用したところ
uuid.lib(ocidl_i.obj) : fatal error LNK1103: デバッグ情報が壊れています; モジュールを再コンパイルしてください
とエラーが出ました。
googleで調べたところ
> 最新のSDKはVC++6.0と互換性が無い部分があるのが原因
と出たのですが回避策とかはないのですか?
Releaseモードでは問題ないのでとりあえずは凌いでいますが、さすがに後々困りますよね・・・^^;
0066デフォルトの名無しさん
2005/07/29(金) 09:41:190067デフォルトの名無しさん
2005/08/03(水) 02:39:03Release版ではあっちからincludeして,Debug版ではそっちから,と。
0068デフォルトの名無しさん
2005/08/03(水) 02:43:46「プロジェクトの設定」を使ってしかるべき設定値にする。
0069デフォルトの名無しさん
2005/08/03(水) 10:34:57DLLの呼び出しに失敗します。
ダウンロード先はDownloaded Program Filesです。
あらかじめパスの通ったところにDLLを置いておくと正常動作します。
こういった使い方は出来ないのでしょうか?
0070デフォルトの名無しさん
2005/08/03(水) 11:13:44Downloaded Program Filesにpathを通せば起動できると思うけど、
なんでわざわざCABから展開したもの(≠ダウンロードしたもの)を
そんなところに置くわけ?
果てしなく迷惑だと思うのだけど。
0071デフォルトの名無しさん
2005/08/03(水) 11:41:46知らないなら黙っとれ
>>69
IE上で動くActiveXを作っていて、
それがサードパーティのDLLを使っている、ってことかな。
そのActiveXがDLLをパス指定してLoadLibraryすりゃい。
007271
2005/08/03(水) 11:44:48パス指定でLoadLibraryじゃダメだ。なんだったっけなぁ・・・。
007371
2005/08/03(水) 11:47:10電子署名の問題でハネられているとか、
そのへんのような希ガス。
0074デフォルトの名無しさん
2005/08/03(水) 11:53:480075デフォルトの名無しさん
2005/08/03(水) 14:14:49そんなつまらないツッコミしてないで、お前が答えを書いたらどうだ。
0076デフォルトの名無しさん
2005/08/03(水) 14:28:230077デフォルトの名無しさん
2005/08/10(水) 17:21:320078デフォルトの名無しさん
2005/08/13(土) 02:27:43慣れれば大したこと無いんだろうけどメンドクセ。やっぱ6.0使っとこ。
0079デフォルトの名無しさん
2005/08/13(土) 03:07:530080デフォルトの名無しさん
2005/08/13(土) 04:41:05とりあえず、みんな最初そこに驚く。が、ClassWizardの機能は
すべてプロパティで補われている。
0081デフォルトの名無しさん
2005/08/13(土) 23:24:210082デフォルトの名無しさん
2005/08/14(日) 01:19:17最初はそのプロパティもなんかしっくりこなくてイヤだった)。
0083デフォルトの名無しさん
2005/08/17(水) 05:16:04VISUAL C++ .NET 2003 とどう違うのか教えてエロい人。
0084デフォルトの名無しさん
2005/08/17(水) 06:31:480085デフォルトの名無しさん
2005/08/17(水) 11:21:04CListCtrl::Scrollの使用例とか載ってるサイトとかありませんか?
使い方がいまいちわからなくて。。。orz
0086デフォルトの名無しさん
2005/08/17(水) 22:07:37助けてください。
008786
2005/08/17(水) 22:18:51008886
2005/08/17(水) 22:20:55詳細です→
1.カレンダー表示
・日毎予定データ登録・変更・削除・表示
・月間予定データファイル出力
2.カレンダー表示
・ユーザが選択した年月のカレンダーをメイン画面に表示する。
3.日毎予定データ登録・変更・削除・表示
・各日に対して複数件の予定データを登録できる。
・登録したデータは、後から変更することができる。
・登録したデータを削除することができる。
・登録したデータは、その内容または件数がカレンダーの該当日付の位置に表示される。
4.月間予定データファイル出力
カレンダー画面に表示中の月に関する全ての予定データの全内容を、リスト形式で、指定したテキストファイルに出力できる。
008986続き
2005/08/17(水) 22:21:51処理能力
・1日の予定データとして登録できる最大件数は100件までとする。
・予定データの件名として登録できる文字数は半角100文字までとする。
・予定データの場所として登録できる文字数は半角100文字までとする。
・予定データの内容として登録できる文字数は半角1024文字までとする。
6.起動条件
・特に無し。
7.競合条件
・特に無し。
8・制限事項
・カレンダー表示可能な期間は、1990年1月〜2036年12月とする。
009086続き
2005/08/17(水) 22:22:47009183
2005/08/17(水) 22:53:00ありがとうございます。
ちなみにVisual C++ .NET 2005はすでに発売されているのでしょうか?
まだ店頭では2003しか見かけないのですが。
もし買うとしたら2005を買ったほうがよいでしょうか。それとも2003でもかまいませんでしょうか?
ご意見をお願いします。
0092デフォルトの名無しさん
2005/08/18(木) 01:58:12発売されてない。
とりあえずフリーのを、しばらく使ってみたらいいと思う。
そのうち、自分がやりたいことのためには、どれを買えばいいのか、自ずとわかってくるから。
0093デフォルトの名無しさん
2005/08/19(金) 00:48:34てか、VisualC++.NET2005は発売されない予感
0094デフォルトの名無しさん
2005/08/19(金) 13:05:12作成した場合、アプリケーションの利用者は.NET Frameworkを
インストールする必要はないんですか?
0095デフォルトの名無しさん
2005/08/19(金) 14:27:00MFCもWin32もネイティブだから.NETは使わないよ。
0096デフォルトの名無しさん
2005/08/19(金) 14:38:30そうですか。どうも有り難うございました。
0097デフォルトの名無しさん
2005/08/22(月) 23:02:08「猫でもわかるC言語」で初歩からコンソールアプリケーションの勉強をしてきたのですが、
ttp://www.kumei.ne.jp/c_lang/intro/no_57.htmまできて
【windows.hがありません】のエラーが出てしまいました。
どうしてもC言語でwindows.hを使ったプログラミングがしたいのですが、
そのようなヘッダはフリーで入手できないのでしょうか。
どなたか、どうかお願いします。
0098デフォルトの名無しさん
2005/08/22(月) 23:09:07PlatformSDKを手に入れろ。
Win32APIスレにリンクがある。
あと、そこのページでMessageBoxを呼ぶときにLPCSTRへのキャストをしているがそれは無駄。無視していいよ。
0099デフォルトの名無しさん
2005/08/22(月) 23:12:23error C2440: 'return' : 'int' から 'animal' に変換できません。
列挙型への変換には static_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
と出てビルドできません。
この入門書は2周目で、前にやったときは実行できてたはずなんですよね、、、。
オプションの何かをいじってしまったんでしょうか、、、。
どなたか、よろしくお願いします。
0100デフォルトの名無しさん
2005/08/22(月) 23:17:47そのファイルの拡張子がcppになっているだろ。
そうならそれはC++としてコンパイルされている。
C++では型安全性の強化でint型から列挙型へはキャスト演算子でキャストする必要がある。
ちゃんとエラーメッセージ読め。問題の箇所をキャストすればいいだけだ。
0101デフォルトの名無しさん
2005/08/22(月) 23:27:43に変更したら、ビルドできました。
疑問に思ったんですが、このキャストは、
99のエラーメッセージの3つのうちのどれなんでしょうか?
自分はどれも違うような気がしてるんですが、、、。
よろしくお願いします。
0102デフォルトの名無しさん
2005/08/22(月) 23:44:48それはCスタイルキャスト。C言語のキャストだ。
関数スタイルキャストってのはanimal(tmp)と書く。もちろん一見関数呼び出しに見えることからこの名称。
(C++ではenum animalではなく単にanimalとだけ書いていい)
本当はキャストではないけど、組み込み型や列挙型に対して使うとキャスト演算子と同じ働きをする。
static_castはC++のキャスト。static_cast<animal>(tmp)と書く。
C++ではCスタイルキャストは使わずこれを使うのが一般的。
0103デフォルトの名無しさん
2005/08/23(火) 00:22:40遅れてすいません。
つまりは、ぱっぱとCを覚えて、C++にいけということですね。
頑張って勉強していきます。
またわからないことがありましたら、宜しくお願いします。
ありがとうございました。
0104デフォルトの名無しさん
2005/08/23(火) 00:31:40むしろStroustrup氏は最初にC++を学ぶことを推奨している。
0105デフォルトの名無しさん
2005/08/23(火) 01:27:01初めてみるものが多くてさっぱりだったんですよね。
それで、自分は2003.netなので、検索かけて用語の解説をみたりしたんですが、
その解説もまたわかりませんでした。
今は、勧めないのでまた入門書を復習してる状態です。
違う入門書か、猫でも〜とかを勉強したほうがいいですかねー、、、。
0106デフォルトの名無しさん
2005/08/23(火) 03:50:160107デフォルトの名無しさん
2005/08/23(火) 08:36:400108デフォルトの名無しさん
2005/08/23(火) 08:53:27そんでよく理解してから始めてオブジェクト指向やジェネリックプログラミングに足を突っ込めと言っている。
010997
2005/08/23(火) 12:20:18ありがとうございます、解決しました!
実はPlatform SDK ダウンロードのページ
ttp://www.microsoft.com/msdownload/platformsdk/sdkupdate/
は何回も訪れていたようでした
・初回「もうリンク切れか・・・」と見るのをやめ
・次回は「Windows Server」って書いてあるしXPじゃないよなと見るのをやめ
・その次は PSDK-amd64.exe を実行しようとしてみてやっぱり違ったとあきらめておりました
超初心者を実感しました。感謝
0110デフォルトの名無しさん
2005/08/23(火) 13:43:02TCP/IPでクライアント側で起こるエラーはどんなエラーがありますか?
環境 VC++6.0 windows2000
0111デフォルトの名無しさん
2005/08/23(火) 13:57:39なるべくそのつど書くのがいいのでしょうか。
usingは悪なんでしょうか。
標準C++のサンプルコードよりもMFCなんかのコードのほうがこの傾向をよく見る気がしたのでこのスレに書きました。
カプセル化の度合とかも関係あるのでしょうか。
早さは変わったりするのでしょうか。
0112デフォルトの名無しさん
2005/08/23(火) 14:12:45「早さ」とは何のことを言っている?
コンパイル速度ならどちらにしても大差ないだろうし、生成されたモジュールならそもそも同じものになるだろう。
人間の理解の速さなら個人差の方が大きいだろうし、いずれにしても気にするような差はないと思う。
>標準C++のサンプルコードよりもMFCなんかのコードのほうがこの傾向をよく見る気がしたので
それは単に、標準C++は名前空間がない頃からあるのに対してMFCのサンプルコードは精々6か4.2以降だから
時代が違う所為ではないだろうか。
usingは悪とまでは言わないが、濫りに使うとメリットがなくなるから要注意で。
特に、インクルードファイルでは使わないほうがいい。
0113デフォルトの名無しさん
2005/08/23(火) 14:15:56usingディレクティブ(using namespase)は過去との互換性のためだけに用意したとD&Eに書いてある。
こいつを使わずに 名前空間:: で直接修飾したりusing宣言を使ったり、長い名前ならエイリアスを作ったりして使うべきと書いてある。
0115デフォルトの名無しさん
2005/08/23(火) 14:45:46class A {};
class B {};
class C { A a; B b; };
class D {};
class E : public C, public D { A a; };
int main()
{
E e;
return 0;
}
の時、構築の順番は、E→C→A→B→C→A
となると思いますが、
破壊の順番はどうなってるのでしょうか?
解る方、ご指導お願いします。
0116デフォルトの名無しさん
2005/08/23(火) 14:50:44オンラインで UNIX 系のマニュアル探して bind/accept とか、
open/read(sock)/write(sock)/close とかの errno の取り得る値と
意味を読め。
0117デフォルトの名無しさん
2005/08/23(火) 14:51:47デストラクタ作って監視汁
0118115
2005/08/23(火) 14:58:47わかりました。
やってみます。
0119デフォルトの名無しさん
2005/08/23(火) 15:16:09わかりました
やってみます
0120115
2005/08/23(火) 16:08:25コンストラクタ、デストラクタを作ってみた結果、
クラスの初期化と解放の順序がわかりました。
ありがとう御座いました。
0121デフォルトの名無しさん
2005/08/23(火) 16:18:03参考までにどんな順序でしたか
0122デフォルトの名無しさん
2005/08/23(火) 16:20:03で、結局構築された順と反対に順に解体される
結果になった?
0123デフォルトの名無しさん
2005/08/23(火) 23:28:56{
// TODO : ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼び出します。
static ct = 0;
int ret;
ct = ct + 1;
switch (ct) {
case 1:
ret = AfxMessagBox("1 MB_OK+感漢符です", MB_OK|MB_ICONEXCLAMATION);
break;
case 2:
ret = AfxMessagBox("2 MB_ABORTRETRYIGNORE+ストップです",MB_ABORTRETRYIGNORE|MB_ICONSTOP);
break;
case 3:
ret = AfxMessagBox("3 MB_OKCANCEL+情報です",MB_OKCANCEL|MB_ICONINFORMATION);
break;
case 4:
ret = AfxMessagBox("4 MB_YESNOCANCEL+疑問符+BUTTON3です",MB_YESNOCANCEL|MB_ICONQUESTION|MB_DEFBUTTON3);
break;
case 5:
ret = AfxMessagBox("5 省略した場合です");
ct = 0;
break;
}
CView::OnLButtonDown(nFlags, point);
}
c:\documents and settings\my documents\visual studio projects\vcmsgbox\vcmsgboxview.cpp(111) : error C3861: 'AfxMessagBox': 識別子は、引数依存の照合を使用しても見つかりません。
と出てしまいます。何方か教えてください。よろしくお願い致します。
0124デフォルトの名無しさん
2005/08/23(火) 23:46:22AfxMessagBox ???
0125デフォルトの名無しさん
2005/08/23(火) 23:54:18スペルミスですね
すみません。
0126デフォルトの名無しさん
2005/08/25(木) 13:44:54ビルドしたDLLをNUnitに読み込ませると、
ファイルまたはアセンブリ名 [DLL名]、またはその依存関係のひとつが見つかりませんでした。
For further information, use the Exception Details menu item.
というダイアログが表示されて、テストが実行できません。
テストするDLLとそれが必要とするDLLなど全て存在するんですが、
同じような現象に陥った方いましたら解決方法を教えてもらえんでしょうか。
0127デフォルトの名無しさん
2005/08/27(土) 06:02:57VC++.NET2003なのですが、TransparentBlt()を使おうとすると
test2 error LNK2019: 未解決の外部シンボル __imp__TransparentBlt@44 が関数 "long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
と出てビルド出来ません。
「msimg32.libファイルをリンカにインポートする」という事は分かったのですが、具体的にどうすればいいのでしょうか?
お願いします。
0128デフォルトの名無しさん
2005/08/27(土) 07:40:51たしかプロジェクトのプロパティのリンカの入力の追加の依存ファイルの辺り。
0129デフォルトの名無しさん
2005/08/27(土) 17:47:15#pragma comment(lib, "msimg32.lib")
0130デフォルトの名無しさん
2005/08/27(土) 18:53:50どちらも出来ました。
128さんのやり方は、プロジェクトごとにプロパティで追加できるんですね。
129さんのやり方は、ソースの頭に書くだけでokなんですね。
勉強になりました。ありがとうございました。
0131デフォルトの名無しさん
2005/08/28(日) 09:07:22というバージョンを使っているのですが、プロファイラの在処がわかりません。
gccにおけるgprofのようなものを想像しているんですが、このバージョンには
付属していないのでしょうか?
もし付属していないのだとすれば、どのような方法で統計をとるのが
いいのでしょうか?
0132デフォルトの名無しさん
2005/08/28(日) 11:04:230133デフォルトの名無しさん
2005/08/28(日) 13:27:55きついと思うのですが、それはみなさんとて同じなのでしょうか。
あるいは便利なテクがあるのでしょうか。
もしあれば教えてください。
今知っているのはCtrl+Spaceぐらいです。
0134デフォルトの名無しさん
2005/08/28(日) 14:00:340135デフォルトの名無しさん
2005/08/28(日) 19:53:10・Delphiなら区別がありません。
解決方法2
・後で一括置換
解決方法3
・VS2005からリファクタリング機能があるよ、C#やろうぜ
解決方法4
・Eclipseまんせー
0136デフォルトの名無しさん
2005/08/28(日) 20:03:320137デフォルトの名無しさん
2005/08/28(日) 20:04:470138131
2005/08/28(日) 20:29:56ありがとう。
高そうですね。
0139デフォルトの名無しさん
2005/08/28(日) 22:07:090140デフォルトの名無しさん
2005/08/28(日) 23:15:14なるほど。ありがとうございます。
0141デフォルトの名無しさん
2005/08/28(日) 23:53:25リファクタリング機能もうちょっとなんとかならんものか
0142デフォルトの名無しさん
2005/08/29(月) 00:17:390143デフォルトの名無しさん
2005/08/29(月) 00:30:44CUIならC++
個人的にお勧めなのがVisual Basic 6.0。たしか、もう売ってないけどね
0144デフォルトの名無しさん
2005/08/29(月) 00:30:550145デフォルトの名無しさん
2005/08/29(月) 00:45:03C#よりC++のほうが難しいと友達から聞いたのですが本当ですか?
あとC#が出来るようになればC++もすぐに出来るようになり、その逆も出来るようになれますか?
わかりにくかったらすみません。
0146デフォルトの名無しさん
2005/08/29(月) 00:46:4501471
2005/08/29(月) 00:55:13まあありえるかな。
しかしC++に行くなら、どちらにしてもCを
飛ばすことはできないと思う。
マイクロソフトの宣伝で、C#が、さもC/C++の後継で、
次世代のCみたいな思い込みしている初心者が多いが、
C#はCとは関係ないとくらい思っておいたほうがいい。
CがC++に進化して、それの構文だけうっすらマネた
のがJavaで、「Javaいーなー、欲しいなー」って思った
MSが作ったのがC#。
0148デフォルトの名無しさん
2005/08/29(月) 00:56:49断じて1ではありません。
0149デフォルトの名無しさん
2005/08/29(月) 01:09:080150デフォルトの名無しさん
2005/08/29(月) 11:09:44どのように記述すればいいのでしょうか?
0151デフォルトの名無しさん
2005/08/29(月) 13:15:04operator LPCTSTR ( ) const;
0152デフォルトの名無しさん
2005/08/29(月) 18:11:13VisualC++6.0で作成したプロジェクトを、VisualC++.Net(2003)で
リビルドしたところ、「LNK2001:外部シンボル」が多発します。
対象となる関数が「_memset,_memcpy」など標準関数が主になるのですが、
6.0のものを.NETでリビルドする場合、なにか変更する必要があるのでしょうか?
ご教授よろしくお願い致します。
0153デフォルトの名無しさん
2005/08/29(月) 19:34:41ライブラリのリンクでミスってるんじゃないの?
確認してみたら?
0154デフォルトの名無しさん
2005/08/29(月) 20:05:37Cランタイムライブラリがリンクされてないんだろうが・・
C/C++のコード生成のランタイムライブラリに何が入ってる?
0155デフォルトの名無しさん
2005/08/29(月) 21:52:38左のペインにツリービューをつくるにはどういう流れになるのですか?
ツリーが自分のパソコンのフォルダを読み込むにはどうすればいいのですか?
0156デフォルトの名無しさん
2005/08/29(月) 21:57:26当たり前だけど内部では文字列をTCHARで保持していないと駄目だからな。
0157デフォルトの名無しさん
2005/08/29(月) 22:20:37カーソルを違う場所へ持っていったり他の動作をするとポップアップがもう出なくなります。
再度出したい場合は、(まで削る以外に方法はないのでしょうか?
0158デフォルトの名無しさん
2005/08/29(月) 22:26:45引数はそのままで ( だけ消して入力しなおせば十分。
0159デフォルトの名無しさん
2005/08/29(月) 22:39:24Ctrl+Shift+スペース
0160デフォルトの名無しさん
2005/08/29(月) 22:50:48おおお!
ありがとうございました。
基本的な使い方すらもわかっていないので、本でも買ってみたいと思います。
0161デフォルトの名無しさん
2005/08/29(月) 23:54:100162デフォルトの名無しさん
2005/08/30(火) 09:28:28C/C++のコード生成のランタイムライブラリで、
シングルスレッドがマルチスレッドに変わってました。
シングルスレッドに戻したところ、正常にリビルドできました。
ありがとうございました。
0163デフォルトの名無しさん
2005/08/30(火) 11:46:580164デフォルトの名無しさん
2005/08/30(火) 11:57:46http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/structures/notifyicondata.asp
書いてあるじゃないか。
0165デフォルトの名無しさん
2005/08/30(火) 18:26:30http://jp.thespoke.net/qotd/firstpage.aspxが落ちてるのですが
なぜでしょうか?
0166デフォルトの名無しさん
2005/08/31(水) 13:18:15メール嫁。
文字化けしてるかも知れんが。
0167デフォルトの名無しさん
2005/08/31(水) 16:02:07MFCでダイアログベースでアプリケーション作成しています。
どこのクラスでも同じ値を使いたいのですが
publicで宣言するのは
.hとdlg.hどっちのヘッダーファイルのpublicで宣言したらいいでしょうか?
教えていただけますか?
0168デフォルトの名無しさん
2005/08/31(水) 16:48:130169デフォルトの名無しさん
2005/08/31(水) 17:02:570170デフォルトの名無しさん
2005/08/31(水) 22:35:00そのクラスを複数のスレッドで使う場合
各スレッドから非同期でCGIにアクセスしても大丈夫なんでしょうか?
それとも基本的にCGIへのアクセスは1つのスレッドからしか
出来ないようすべきでしょうか?
0171デフォルトの名無しさん
2005/09/01(木) 00:03:59おまえらプログラマに向いてないわ。
早いとこ転職考えろ。
0172デフォルトの名無しさん
2005/09/01(木) 08:32:23偉そうにw
0173デフォルトの名無しさん
2005/09/02(金) 09:03:16そのCGIの中身がスレッドセーフor中で排他制御してるなら問題なし
そうでないなら呼び出し側で排他制御
0174デフォルトの名無しさん
2005/09/02(金) 11:44:44成る程ですね。ちょっとCGI側を眺めてみます。
こちら側で排他制御するとなるとクリティカルセクションって奴を
使えば良いのでしょうか?
0175デフォルトの名無しさん
2005/09/02(金) 12:26:40まあ、そうですね。ほかにも同期をとる手法はいくつかあるけど。
それより、ネット向こうのCGIは不特定多数のユーザーからアクセスを受けるわけだから
CGI側が同期処理を行っていないはずがないのでは。このケースではこちらが
相手の心配してやることはない。それよりも自分のコードの心配したほうがいい。
マルチスレッドは十分気をつけて書かないと。
0176デフォルトの名無しさん
2005/09/03(土) 16:28:34エラーログが文字化けします。
aRaoapaCaie?e─eoe?e?...
stdafx.cpp
aRaoapaCaie?e─eoe?e?...
sankaku.cpp
print.cpp
c:\Documents and Settings\tarou\My Documents\Visual Studio Projects\print\print.cpp(24) : warning C4267: '=' : 'size_t' ?? 'int' ??????????????????????????
???????...
c:\documents and settings\tarou\my documents\visual studio projects\print\print.cpp(19) : warning C4700: Ale¬eaeΦoue─eτeΩe─eoe?eoaiu[aJaie?o?Eo 'buffer' e?a?e?e─AQA?e¬iseφeΩe?e?e?uB
リンクしています...
Win XP Home Edition SP2で VisualStudio.NET 2003 です。
文字化けを直す解決方法が分かりません。どうすれば直すことができますか?
宜しくお願いします。
0177デフォルトの名無しさん
2005/09/06(火) 11:05:21遅レスになりましたがありがとうございます。
その辺りも注意しながらやっていきます。
0178デフォルトの名無しさん
2005/09/06(火) 11:31:340179デフォルトの名無しさん
2005/09/07(水) 19:40:16コンパイラオプション探したけど、目当てのものが見つからないぽ
0180デフォルトの名無しさん
2005/09/07(水) 19:54:57リスト出力
0181デフォルトの名無しさん
2005/09/07(水) 20:01:15printf.cのパスを入力してくださいとダイアログが出てくるのですが、
なんでこれが出てくるのか分かる方教えてください。
stdio.hはインクルードしてます。
0182デフォルトの名無しさん
2005/09/07(水) 21:06:49ライブラリのprintf関数の中にステップインしようとしたから。
ライブラリのソースをインストールしる。
0183182
2005/09/07(水) 21:08:24ソースファイルが存在しない、
もしくは、
ソースファイルが見つからない
というのが直接の原因。
解決法は、
そういう関数にはステップインしようとしない、
ソースを用意してやる
の2つ。
0184デフォルトの名無しさん
2005/09/07(水) 21:17:10一度再インストールしてみることにします。
0185デフォルトの名無しさん
2005/09/08(木) 00:03:11無視して混合モードで表示すると言う解決方法もあるのだが。
0186182
2005/09/08(木) 00:30:18それは超初心者には酷な解決方法ではないかと。
VC++は超初心者だけど、C++やアセンブラは中級以上だというのなら、大丈夫だが・・・。
0187デフォルトの名無しさん
2005/09/08(木) 04:28:26簡単にできるんですか?
C♯では比較的簡単にでき、画像処理向きだといわれたんですが
VC++.NET買ってしまったんで、なんとかがんばってみたいんですが・・・
0188デフォルトの名無しさん
2005/09/08(木) 05:06:59やりたいことにもよる。
ImageMagickのような外部ライブラリを使いたいならC#よりも楽だと思うし。
0189デフォルトの名無しさん
2005/09/08(木) 07:38:40もちろんC#ではできないというわけではなく、簡単じゃなくて普通レベルだろって言いたい。
0190デフォルトの名無しさん
2005/09/08(木) 10:20:02MessageBox(elm->GetBaseName());
で例外エラーが発生してしまいます。
elm->AttachDispatch(xml->GetDocumentElement(), TRUE);
に問題があると思うのですが、どこが間違っているのでしょうか?
IXMLDOMDocument *xml = new IXMLDOMDocument;
IXMLDOMElement *elm = new IXMLDOMElement;
xml->loadXML("d:\\test.xml");
elm->AttachDispatch(xml->GetDocumentElement(), TRUE);
MessageBox(elm->GetBaseName());
0191デフォルトの名無しさん
2005/09/08(木) 13:29:00一覧できるビューアみたいなのが、以前のOSだったかVSのツールだったかに
付いてたと思うのですが、そのツールの名前は何だったでしょうか?
0192デフォルトの名無しさん
2005/09/08(木) 13:40:460194デフォルトの名無しさん
2005/09/08(木) 22:04:51Visual C++ Ver.7.1を使っていて、C++のプログラムを作っているのですが、
1.プロジェクトのコピー方法
2.ソリューションのコピー方法
がわかりません。
回答お願いいたします。
0195デフォルトの名無しさん
2005/09/08(木) 23:02:10インターフェイスはnewするものじゃないだろ。
0196デフォルトの名無しさん
2005/09/08(木) 23:36:29普通にファイルコピーしたらいいんでないの?
0197187
2005/09/09(金) 02:56:58カメラからはjpeg形式のファイルがつくられるんで
bitmapで画像処理ができないんです。
C♯だとjpegをbitmapに直接変換できる方法はあるようなのですが
C++で変換する方法がイマイチわからないんで、C♯の方がやりやすいのかなと思ったんですが。
0198デフォルトの名無しさん
2005/09/09(金) 13:00:190199デフォルトの名無しさん
2005/09/09(金) 22:35:060200デフォルトの名無しさん
2005/09/09(金) 23:13:360201デフォルトの名無しさん
2005/09/09(金) 23:19:190202194
2005/09/09(金) 23:20:00普通にディレクトリーごとコピーして、プロジェクトを開いたら、ソリューションエクスプローラでは(利用不可)と表示され、クラスビューでもリソースビューでも何も表示されません。
私の聞き方が悪かったようなので、質問を変えたいと思います。
【質問】
今、ProgV1.exeというプログラムの開発が終わり、リリースしました。次はProgV1.exeに新機能を追加したProgV2.exeの開発を行います。
ProgV1.exeの開発自体は終わってしまったのですが、不具合修正のため、ProgV1.exeの開発環境はそのまま取っておきます。
また、ProgV1.exeの不具合修正とは関係なく、ProgV2.exeの開発は進めるのですが(もちろんProgV1.exeで見つかった不具合はProgV2.exeでも対応していきます)、
このような場合、ProgV1.exeのソリューションレベルのフォルダを丸ごとコピー&リネームしても、.vcproj, .sln, .rc 等管理ファイル中のフォルダ名が自動的にリネームされないので、エラーになってしまいます。
内部の管理ファイルの整合性を保ったまま、また、できあがったexeの名前も別になるような、ソリューションをコピーする方法を教えて下さい。
回答可能な方、回答お願いいたします。
0203デフォルトの名無しさん
2005/09/09(金) 23:35:17普通に開いてビルドできるのが当たり前だから
フォルダ丸ごとコピーしてビルドできないはずがない。
0204196
2005/09/10(土) 09:27:02>203も書いているが、コピーしたプロジェクトが利用不可になることはふつうはない。
私の参加しているプロジェクトは複数の業者が関与しているから凡そ10台の端末で
開発されている筈だが、コピーしても問題なく開発を継続できる。
考えられる可能性としては、プロジェクトに参加しているファイルにフルパスのものがあるんじゃないか?
或いはプロジェクト管轄以外への相対パスとか。
そんな最初から管理を放棄したようなことをしているのなら、コピーできなくても不思議はないな。
0205名無しさん@そうだ選挙に行こう
2005/09/11(日) 03:20:36.NET特有のライブラリとかは糞なのでいらないのですが
0206名無しさん@そうだ選挙に行こう
2005/09/11(日) 04:36:570207名無しさん@そうだ選挙に行こう
2005/09/11(日) 05:46:45なら問答無用で7.1でしょ
0208名無しさん@そうだ選挙に行こう
2005/09/11(日) 08:52:500209名無しさん@そうだ選挙に行こう
2005/09/11(日) 09:06:490210名無しさん@そうだ選挙に行こう
2005/09/11(日) 12:20:41.NET 2003 は、VC++ .NET standard 2003
と Visual Studio .NET professional 2003
があり、後者は通常版は10万以上しますよね?
個人で通常版買うとしたら前者しか手が出ないのですが
この2つのパッケージの差は何でしょうか? professional
が必要な場面って…
0211名無しさん@そうだ選挙に行こう
2005/09/11(日) 12:29:420212名無しさん@そうだ選挙に行こう
2005/09/11(日) 12:39:36http://www.microsoft.com/japan/msdn/vstudio/productinfo/featurelist.asp
0213名無しさん@そうだ選挙に行こう
2005/09/11(日) 17:05:210214名無しさん@そうだ選挙に行こう
2005/09/11(日) 17:27:15そんな私は、VS.NET 2002のMSDN付きを買って、
VS.NET 2003とVC6.0をMSDNでゲットしましたよ。
そして主に使っているのは、VC6.0だけという・・・。
0215名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:25:41MSDN付きでVC++6.0が入手可能なセットはどの種類からになりますか?
格安というのはいくら位のものを指してますか?(非アカデミックで)
0216名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:27:47VSはVC++,VB,VC#,VJ#がセットになったって感じ。
てか俺も悩んでVC++買ったクチだけど、
VC++をやりたい!ってレベルなら前者買って問題ないと思うよ。
最適化コンパイラが付いてないけど、正直、VC++やりたいレベルならいらないし、
無料のToolkitを使えば最適化できるし、アプリケーションが完成した時に考えればいいんじゃね?って事。
俺は勉強用だからアプリケーションを完成させて配布するなんて当分先だろうし。
あと学生なら>>213の言うように、選択肢はこれ(Spoke)しかない。
0218名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:50:03と
CClientDC myDC(h);
はどのように使い分ければいいのですか?
0219名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:52:590220名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:54:510221名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:58:32ありがとうございました。
0222an_take
2005/09/11(日) 22:51:56gshowという動画再生のフリーソフトがあるのですが・・・このソフトを改良しようと思って日々いろいろ勉強しています。
改良といっても、gshowは重複起動できないので、「重複起動のチェックを外す」ことだけを目標としています。
これについては、知人に聞いて大体の見当がついてます。
このgshowには、ソースがついているので、改良前に自分でgshowをVisual C++6.0でビルドしようにもサッパリできないのです。
プログラミングに詳しい知人に聞いたのですが、わからず八方塞状態です。ちなみに、gshowの作者とは連絡がとれないのです。
このソースとDirectX8.0以降のSDKとWindows Media Format SDKがあれば、ビルドできるそうです。
今現在、DirectX9(october2004)SDKを導入し、コンパイルしたら下記のようにエラーがでました。
自分なりに解決方法をしらべてはいますが、1週間以上解決法がみつからないままです。
Windows Media Format 9.5SDKをインストールしてはあるのですが・・・きちんと導入できているかわからないです。
このソフトのソースをなんとかビルドできるように、ご指導よろしくお願いいたします。
どうか救いの手を・・・
/////////////// /////////////// /////////////// ///////////////
コンパイル中...
StdAfx.cpp
c:\program files\microsoft directx 9.0 sdk (october 2004)\include\strmif.h(1024) : error C2146: 構文エラー : ';' が、識別子 'HSEMAPHORE' の前に必要です。
c:\program files\microsoft directx 9.0 sdk (october 2004)\include\strmif.h(1024) : fatal error C1004: 予期せぬ EOF が検出されました。
cl.exe の実行エラー
gshow.exe - エラー 2、警告 0
/////////////// /////////////// /////////////// ///////////////
↓gshowの配布サイト
http://www.vector.co.jp/soft/win95/art/se296143.html?y
0223名無しさん@そうだ選挙に行こう
2005/09/11(日) 23:44:02どこかで;やら}やらが抜けてる予感だな。
0224デフォルトの名無しさん
2005/09/11(日) 23:57:08たとえば、ListViewの項目にプログレスバーやコンボボックスを入れたい
なんて超初心者ではきつい
0225デフォルトの名無しさん
2005/09/12(月) 01:03:18パスするパッチを当てる方が早かったりして。
0226デフォルトの名無しさん
2005/09/12(月) 14:04:15ついでに、そんなつまらないことで、作者に連絡が取れたら作者に聞こうなんて、いい迷惑だ。
0227デフォルトの名無しさん
2005/09/12(月) 19:35:09コンパイルが通らんわけだ。
一番早いのは8SDKを手に入れることだが、MSはもう公開を停止してるのではなかったかな?
0228an_take
2005/09/12(月) 22:34:46みさま、イロイロアドバイスありがとうございます。
自分なりにイロイロ調べてみたいと思います。
といっても・・・・わからないことだらけですが・・・
(@Д@; アセアセ・・・
0229デフォルトの名無しさん
2005/09/13(火) 02:25:46あと、クラス設計とか参考になりそうなサイトないでしょうか?
0230デフォルトの名無しさん
2005/09/13(火) 02:38:280231デフォルトの名無しさん
2005/09/13(火) 05:07:55VC++に移行しようと思ったのですが
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
の意味がいきなり分かりません
説明して頂けませんか?
0232デフォルトの名無しさん
2005/09/13(火) 05:34:58IDEだけ変えることってできないの?
0233デフォルトの名無しさん
2005/09/13(火) 05:54:08メモ帳でもなんでも好きなテキストエディタ使えばいい
0234232
2005/09/13(火) 05:58:22好きなエディタで書いて、書き終ったらはっつけてやれってこと?
0235デフォルトの名無しさん
2005/09/13(火) 06:11:48VC++に以降というかWindowsプログラミングに以降するって事だよね?
意味が分からないって関数が分からないって意味じゃなくて引数の意味が分からないって事だよね?
それならぐぐれば出てきまくるけどとりあえず無視しても平気っぽい。
というかウィンドウ描画まで一気に行ってから理解した方が早いと思う。
0236デフォルトの名無しさん
2005/09/13(火) 06:13:01そこのWinMainの部分はほとんどいじることがないし、
そこだけ見てもしょうがない。
渡されたパラメータを使う段階になったら調べるといい。
0238デフォルトの名無しさん
2005/09/13(火) 06:40:59文字を出力させたいのですが、printfだとどこにも表示されません
簡単に表示させる方法はないでしょうか?
0239デフォルトの名無しさん
2005/09/13(火) 07:34:33「簡単」の定義がわからないが、printfで表示されないという言葉を見る限りで判断させてもらうと、
簡単に表示させる方法はない。
まずはウィンドウを作る勉強をし、メッセージやウィンドウプロシージャなどの勉強をするべし。
ちなみにウィンドウズプログラミングの入門書などにはこれらの事が必ず書かれているので安心しましょう。
0240238
2005/09/13(火) 07:36:15ウインドウ作ってそこにprintfの結果張り付けられるようなコードを書け
早くかけ
0241デフォルトの名無しさん
2005/09/13(火) 08:01:120242デフォルトの名無しさん
2005/09/13(火) 08:01:22お前はピーデーの川又か?
http://www.atmarkit.co.jp/fdotnet/special/cppcli/cppcli_01.html
0244デフォルトの名無しさん
2005/09/13(火) 08:24:06例えば、以下のようなよくあるCの“Hello World”プログラムを記述してもそのまま実行できる。
#include "stdafx.h"
#include <stdio.h>
int _tmain()
{
printf("Hello World!\n");
return 0;
}
これのいったい何がすごいのか分からないという読者もいると思う。
また、.NET Frameworkの知識のある読者の中には、何が起きているのか
よく理解できないという方もいるかもしれない。
実はこのソース・コードは、マネージ・コードで書かれたmain関数
(ソース・コードでは「_tmain」)から、
ネイティブ・コード(アンマネージ・コード)で書かれたprintf関数
(旧来のC言語標準ライブラリのAPI)を呼び出しているのである。
つまり、新規に書いた部分は新しいテクノロジで、
呼び出す先は古いテクノロジで実現されているということである。
まさに「過去の資産の継承」を印象付ける事例なのである
0245デフォルトの名無しさん
2005/09/13(火) 08:25:59printfそのまま使ってる
信じられん
0246デフォルトの名無しさん
2005/09/13(火) 08:48:17世の中進歩したね。
あと100年は無理だと思ってたけど、こんなに早く夢が実現したとは
0247デフォルトの名無しさん
2005/09/13(火) 19:50:52Win32コンソールアプリにしる。
0248デフォルトの名無しさん
2005/09/14(水) 13:21:270249デフォルトの名無しさん
2005/09/14(水) 13:50:37ファイルのプロパティ開けば出るだろ。
意味は名前の通り。
0250デフォルトの名無しさん
2005/09/14(水) 13:53:54コンパイルされないブラウザ
0251デフォルトの名無しさん
2005/09/14(水) 14:17:270252デフォルトの名無しさん
2005/09/14(水) 20:42:35というコードが書きたいのですが、
書き方が分かりません
どう書けばいいのでしょうか?
0253デフォルトの名無しさん
2005/09/14(水) 21:23:430254252
2005/09/14(水) 21:35:23ありがとうございます
ずっと調べているのですが、キーフックと言う言葉は分かったものの
やり方が分かりません
あるウインドウ限定とかではなく、常に監視していてスペースが押されたら
○○の処理みたいな感じのことがしたいです
できれば、コードを書いて頂ければ嬉しいです
0255デフォルトの名無しさん
2005/09/14(水) 22:55:470256デフォルトの名無しさん
2005/09/15(木) 11:44:59文字コードに依存しないようにTCHAR.Hを使用してプログラムを組もうとしています。
そのとき、文字列はCString型を使用することにして
#define _UNICODE
#include <afx.h>
int _tmain(int argc, _TCHAR * argv[])
{
CString TestChar = _T("Test");
return 0;
}
上のように記述したのですが、最初の一文字しか代入されていないようです。
#define _UNICODE
をはずすとうまく代入されます。
これは、どういうことなのでしょうか
0257デフォルトの名無しさん
2005/09/15(木) 12:45:10まさかprintfで確認したとか
0258デフォルトの名無しさん
2005/09/15(木) 14:23:43UNICODEだと、文字列中に0x00が入ることがあるため、printfだと途中で切れる。
0259デフォルトの名無しさん
2005/09/15(木) 14:26:440260デフォルトの名無しさん
2005/09/15(木) 14:36:100261デフォルトの名無しさん
2005/09/15(木) 14:48:44難易度はどうでしょうか?ちなみに私は初心者です。
0262デフォルトの名無しさん
2005/09/15(木) 14:52:01VCの初心者なのか。
プログラミングと別にアニメーションだのの知識が必要だがそっちが初心者なのか。
OpenGLの初心者なのか。それとも(まさか)折り紙か。
全部だとしたらちょっと厳しくない? っていう難易度になりそうな予感。
0263デフォルトの名無しさん
2005/09/15(木) 15:04:58難易度は初級の上ぐらい
今からだと年末には間に合わないと思うよ
0264デフォルトの名無しさん
2005/09/15(木) 19:33:26意地悪しないで、_tmainに入ってすぐに
_tsetlocale(LC_ALL, _T("")) ;
をやれと言ってやればいいのに・・・
0265256
2005/09/15(木) 19:35:15デバッグウィンドウの変数で見ていました。
_tprintfで確認できましたが
>>259
「日本語を表示させると文字化けします」
ちなみにcoutの代わりは、ないのですか?
0266256
2005/09/15(木) 19:37:01ありがとうございます。
助かりました
0267デフォルトの名無しさん
2005/09/15(木) 20:04:20setlocale( LC_CTYPE,"Japanese");
wcout << wstring( L"こんに") << endl;
_UNICODEでstring/wstringは切り替わらない。
0268デフォルトの名無しさん
2005/09/15(木) 20:20:19やるならこんな感じで。
#ifdef _UNICODE
#define _tcout wcout
#define _tostream wostream
#else
#define _tcout cout
#define _tostream ostream
#endif
_tcout << _T("Test") << endl;
0269256
2005/09/15(木) 20:27:56#define _UNICODE
#include <afx.h>
int _tmain(int argc, _TCHAR * argv[])
{
_tsetlocale(LC_ALL, _T("")) ;
CString TestChar = _T("Test");
TestClass TC;
_tprintf(_T("TestChar :\"%s\"\n\n"), TestChar);
TC.TestMeth(TestChar);
return 0;
}
-------
int TestClass::TestMeth(CString TestString)
{
_tprintf(_T("TestString :\"%s\"\n\n"), TestString);
return 0;
}
上記のようなとき以下のような結果になってしまいます。
TestChar :"Test"
TestString :"T"
クラスの側で何か宣言しておく必要があるのでしょうか
0270デフォルトの名無しさん
2005/09/15(木) 20:43:22んじゃなかったかな。だからアクティブな構成を
Win32 Unicode Debugにするとか。ちがったらごめん。
0271デフォルトの名無しさん
2005/09/15(木) 20:44:04#define _UNICODE
を、もっとグローバルな箇所で定義すべし。
プロジェクトの設定でプリプロセッサとして定義するのがベスト
0272デフォルトの名無しさん
2005/09/15(木) 21:01:15> デバッグウィンドウの変数で見ていました。
設定で、UNICODE文字列を表示する、といったようなものがあるから、そこにチェックを入れる。
0273デフォルトの名無しさん
2005/09/15(木) 21:06:53> _tprintf(_T("TestChar :\"%s\"\n\n"), TestChar);
> _tprintf(_T("TestString :\"%s\"\n\n"), TestString);
これはあんまりよろしくない。LPCTSTRにキャストしたほうがいい。
> int TestClass::TestMeth(CString TestString)
関数の中で何をやるか、複数のスレッドで触るのかとかにもよるけど、
CString& TestString
や
CString* pTestString
などを検討してみたほうがいい。
まぁ、CStringのコピーはdeepではなくshallowだけどさ・・・。
0274デフォルトの名無しさん
2005/09/15(木) 21:32:16_tosteramはそうしなくてもtypedef std::basic_ostream<_TCHAR> tostreamとだけ書けばよい。
(cout/wcoutは#ifdef _UNICODEで切り替える必要があるが)
しかも下線で始まる名前は処理系予約。
0275デフォルトの名無しさん
2005/09/15(木) 21:32:45管理したいんですけどうまい方法というか定石みたいなの
あります?
0276256
2005/09/15(木) 22:03:16ご指摘の方法を試したところいろいろ調整が必要でしたが
なんとなくうまく動くようになったようです。
その他いろいろな方からご回答いただきましてありがとうございました。
理解できない言葉などもありますのでもっと勉強したいと思います。
それでもまたどうしてもわからないところがありましたら、ご指導のほどよろしくお願いします。
0277デフォルトの名無しさん
2005/09/15(木) 22:29:04ガンバレ。
誰しもが通った道だ。
0278デフォルトの名無しさん
2005/09/16(金) 00:24:16一応Cはほんのり理解しているつもりです
やっぱりSDKの知識が必要なんですかね?
0279デフォルトの名無しさん
2005/09/16(金) 02:20:59言語とかフレームワークとかの前に。
0280デフォルトの名無しさん
2005/09/16(金) 04:31:121234567890を繰り返し表示するプログラムを作成しなさい。
ただし、表示する数字は読み込まれた整数値の個数とする。
という問題が解けません。
初心者なので、本当に分からなくて…。
駄質問で申し訳ないですが、どなたかお願いします。
0281デフォルトの名無しさん
2005/09/16(金) 07:46:05for (unsigned ic = 0; ic < readNum; ++ic) {
putchar('0' + (ic + 1) % 10);
}
0282デフォルトの名無しさん
2005/09/16(金) 08:04:180283デフォルトの名無しさん
2005/09/16(金) 08:43:52C++知らないとMFCは無理
0284デフォルトの名無しさん
2005/09/16(金) 16:46:26わかりません。
とだけ書かれても、何がわからないのか、わからないのですが・・・。
0285デフォルトの名無しさん
2005/09/16(金) 20:40:59意見ありがとうございます
本読んでC++勉強しようとしているこんな僕でも作れますかね?
合作でサウンドノベル風なのを作ろうと考えているのですが…
0286デフォルトの名無しさん
2005/09/16(金) 22:57:58MFCはWin32SDKのラッパー+α程度だと思っていたほうがいいです。
MFCはC++なので、C++を全く知らないと無理だけど、C++の簡単なことだけ知っていれば使えます。
MFCはサウンドノベルを作るには適切な選択肢ではないような気がします。
0287デフォルトの名無しさん
2005/09/16(金) 23:02:07その後DirectXをCでガリガリ書くとか。
0288デフォルトの名無しさん
2005/09/16(金) 23:22:560289デフォルトの名無しさん
2005/09/17(土) 02:06:13C++でも、気をつけないと、死ねます。
サウンドノベルだったら、もっと他のものを使うことを考えたほうがいいと思うよ。
0290デフォルトの名無しさん
2005/09/17(土) 03:32:150291デフォルトの名無しさん
2005/09/17(土) 03:33:400292デフォルトの名無しさん
2005/09/17(土) 18:07:15ポインタについては少しわかってきた程度ですが、ちょっと聞きたいことがありまして。
スコープ::やメンバ選択->について勉強できる良いサイトはありませんか?
いくつか検索してみましたが、なかなか良いサイトが見つからなかったもので・・・
0293デフォルトの名無しさん
2005/09/17(土) 18:24:24C++スレ行け
0294デフォルトの名無しさん
2005/09/17(土) 19:04:10を作ろうと思ってるんですが、VCでの開発は可能でしょうか?
VBは少しやっていたのですが、「VBでは無理」、
と言われてしまいまして・・・。
0295デフォルトの名無しさん
2005/09/17(土) 19:10:53以上
0296デフォルトの名無しさん
2005/09/17(土) 19:24:24言語処理系なら開発環境としてUNIXを使用したほうがよいと思う。
UNIX系のツールであるlexとかyaccを使用せずに開発するのは至難の業だから。
0297デフォルトの名無しさん
2005/09/17(土) 20:48:56ある文字(列)をタブ文字で置換することが出来ません。
以下のように置換を行っています。
void Replace(char *text, char *key, char *rep){
char *p, buf[128];
p = Search(text, key);
while(p!=NULL){
*p = '\0';
strcpy(buf, p+strlen(key));
strncat(text, rep, strlen(rep)-1);
strcat(text, buf);
p = Search(p+strlen(rep), key);
}
}
char *Search(char *text, char *key){
int m, n;
char *p;
m = strlen(text);
n = strlen(key);
for(p = text; p<=text+m-n; p++){
if(strncmp(p, key, n)==0){
return(p);
}
}
return(NULL);
}
0298297(続きです)
2005/09/17(土) 20:49:59char strMsg = "test,aaa,bbb\n";
とstrMsgを宣言し、Replace(strMsg, "test", "agesage");
とすると、strMsgの中身は、"agesage,aaa,bbb\n"となります。
ここで、Replace(strMsg, ",", "\t"); としてみたところ、
strMsgの中身は、"agesage\taaa\tbbb\n"となって欲しいのですが、
"agesageaaabbb\n" となってしまいました。
デバッグをして1行1行見てみたところ、Replace関数の中に入った時点で、
*key の中身が"\t"ではなく、""となっていました。
どのようにすれば、タブ文字への置換が出来るのでしょうか?
お願いします。
0299デフォルトの名無しさん
2005/09/17(土) 21:03:480300デフォルトの名無しさん
2005/09/17(土) 21:32:43本屋にいって本を買え。
なんで無料で見れるWebサイトで済まそうとするんだろうねぇ。
>>297
> デバッグをして1行1行見てみたところ、Replace関数の中に入った時点で、*key の中身が"\t"ではなく、""となっていました。
本当?
> strncat(text, rep, strlen(rep)-1);
これが間違いだと思う。
なんでrepから1文字削るの?
"\t"なら1文字削ると""になっちゃうよ。
まぁその他にも、言いたいことはたくさんあるが・・・。
0301300
2005/09/17(土) 21:35:44あなたの書いたプログラムは、かなり危ないです。
bufが128バイトで足りなくなることがないことを、呼び出し側が保証していますか?
repに""が指定された時、strlen(rep)-1は、-1となり、とんでもないことになりませんか?
置換した結果、textのメモリを越える長さにならないことを、どのように保証しますか?
0302デフォルトの名無しさん
2005/09/17(土) 21:38:400303デフォルトの名無しさん
2005/09/17(土) 21:50:19ネタに答えてる馬鹿は何者?
0304デフォルトの名無しさん
2005/09/17(土) 22:08:54目指せプログラマー!
ってホームページがいいんじゃない。
かなり、詳しいよ。
やさしいXXXXXってシリーズよりずっといいと思う。
0305デフォルトの名無しさん
2005/09/17(土) 22:19:26構造体メンバーから、文字比較をしたいのですが、
どうすればよいのでしょうか。
struct s{
char *a;
char *b;
};
s s1;
s1.a = "";
if(strcmp(s1.a,"")) //この場合trueでない
0306デフォルトの名無しさん
2005/09/17(土) 22:22:31嫌がらせか?
ここはCスレでもC++スレでもないんだが
0307デフォルトの名無しさん
2005/09/17(土) 22:23:00>>297はネタだとして、strncat(text, rep, strlen(rep)-1);
を strcat(text, rep);
にしてみたんだが、それでも agesageaaabbb となったぞ。なして?
0308デフォルトの名無しさん
2005/09/17(土) 22:28:03Cスレ行け
0309デフォルトの名無しさん
2005/09/17(土) 22:41:14> 目指せプログラマー!
> ってホームページ
今ちらっと STL の set のところ見てみたけど、
erase の削除範囲とか lower_bound の説明とか
嘘だらけな気が…。
0310デフォルトの名無しさん
2005/09/17(土) 22:42:460311デフォルトの名無しさん
2005/09/17(土) 22:45:57意見毎度ありがとうございます
今度仲間とよく相談してこのまま続けるか考えます
>>286 選択肢とはWIN32APIで作るとかでしょうか?
ほんの2,3ヶ月前に始めたばかりなのでよく分かりません…
すいませんでした
0312デフォルトの名無しさん
2005/09/17(土) 22:47:05>スコープ::やメンバ選択->について勉強できる良いサイトはありませんか?
すまんね。
って部分だけを見てたんで。
0313デフォルトの名無しさん
2005/09/17(土) 22:50:27すみませんでした。
去ります。
0314デフォルトの名無しさん
2005/09/17(土) 22:54:55>>290
0315デフォルトの名無しさん
2005/09/18(日) 01:35:43たいんですが無理ですか?
0316デフォルトの名無しさん
2005/09/18(日) 08:24:49カスタムビルドを指定すればいい。
0317デフォルトの名無しさん
2005/09/18(日) 19:21:31flashで、ということでしょうか…?
とりあえず考えておきます
助言ありがとうございます
0318デフォルトの名無しさん
2005/09/18(日) 22:41:54プログラミングできない人でも、そこそこの物が作れるみたいだし。
自分でプログラミングしたい!ってなら自作してもいいけどね。
って、ム板で言うべきじゃことじゃないかw
0319デフォルトの名無しさん
2005/09/19(月) 16:40:07ありがとうございます
ただ、部活の製作物として文化祭に出品する予定なので
1から作ってみたいと思います。逃げ道として考えておきます
そもそもこの質問はゲーム製作スレとかでするものでした
スレ違い失礼しました
0320デフォルトの名無しさん
2005/09/19(月) 20:26:04複数の人間で作業しているため、workspace以下の内容を同じ設定にしたいと考えています。
(他人のプロジェクトをコピペして設定を変えずに自分のマシンでコンパイル出来るようにするのが目的です)
この開発キットでは
* headerファイル
* objファイル
の2種類のファイルをプロジェクトに追加する必要があります。
同じプロジェクトの設定にするために、
[ツール]→[オプション]→[ディレクトリ]
からインクルードファイルのパスを通すことにより、"headerファイル"は設定を変えることなくコンパイル可能です。
しかし"objファイル"の場合、上記と同様に行うことが出来ません。
現在は"ファイルをプロジェクトに追加"のコマンドを使って"objファイル"のリンクを直してからコンパイルする手間があります。
この手間をなくすにはどういった手法をとるのがいいのでしょう?
開発環境:
OS : windows 2000, windows XP
IDE : Visual C++ 6.0 standard
0321デフォルトの名無しさん
2005/09/19(月) 21:18:230322デフォルトの名無しさん
2005/09/19(月) 23:35:00ヒント:相対パス
0323デフォルトの名無しさん
2005/09/20(火) 03:54:290325デフォルトの名無しさん
2005/09/20(火) 04:35:42人によってドライブレターが違うので、
1台しかPCがなかろうと、
共有フォルダを設定して、
みなで同じドライブレターでネットワークドライブを設定するといいかも。
0326デフォルトの名無しさん
2005/09/20(火) 07:53:210327デフォルトの名無しさん
2005/09/20(火) 08:36:14ソースよりobjが新しければ
リビルドしない限りobjは更新されない
0329デフォルトの名無しさん
2005/09/20(火) 22:48:16だってさー、SUBSTすらも使いこなせない人がいるんよ・・・orz
0330デフォルトの名無しさん
2005/09/21(水) 22:20:020331デフォルトの名無しさん
2005/09/22(木) 00:00:060332デフォルトの名無しさん
2005/09/22(木) 00:26:06この職場はおかしい。Windows2000のインストールの手順書が存在しない。
と言って、ビックリしたことがあるよ。
0333デフォルトの名無しさん
2005/09/22(木) 03:05:39そいつに作らせればみんなが幸せになっていんじゃね?
0334デフォルトの名無しさん
2005/09/22(木) 21:22:40そいつが1人で黙々と手順書を作るのであれば。
0335デフォルトの名無しさん
2005/09/23(金) 02:43:220336デフォルトの名無しさん
2005/09/24(土) 03:59:32++mylib
---liba.h
---liba.cc
++sys
---main.cc
こんな感じのディレクトリ構成のプログラムをlinuxで書いていたんですが、
これをVCでコンパイルする場合、どうすればいいでしょうか。
とりあえず、ソースやヘッダーの項目にmylibやsysという新しいフィルタ(ディレクトリ??)を追加して、
その下にソースを追加してビルドしてみた所、
main.ccの#include "mylib/liba.h"が見つからないと言われてしまいました。
おそらくディレクトリ階層が認識できていないからだと思うのですが、どうしたらよいでしょうか。
VCは Visual C++ 2005 Express Edition Beta 2 です。
0337デフォルトの名無しさん
2005/09/24(土) 05:13:20にするか、プロジェクトの設定でsrcにパスを通してしまうか・・・。
0338デフォルトの名無しさん
2005/09/24(土) 11:58:19linuxのときのmakefileはどうなってた?
0339デフォルトの名無しさん
2005/09/24(土) 13:47:30ソースは変更したくなかったので、srcにパスを通したらいけました。ありがとうございました。
が、'fopen' が古い形式として宣言されました。ってwarningが大量発生した。。
さらにstrtofが見つからないってエラーが出たんですが、
VCにはstrtofって無いんでしょうか? 標準ライブラリだと思うんですが。
#M_PIも無いって言いやがる。。
0340デフォルトの名無しさん
2005/09/24(土) 13:58:56strtod使え
あとM_PI使いたかったら
math.hインクルードする前に
#define _USE_MATH_DEFINES
もしくはオプションであらかじめ定義しておくべし。
0341デフォルトの名無しさん
2005/09/24(土) 14:11:21C++なら、fopen()はstd::fopen()だからじゃないか?
で、>338
0342デフォルトの名無しさん
2005/09/24(土) 14:22:00gccでもいれた方がいいのに
頭わるそう
0343デフォルトの名無しさん
2005/09/24(土) 16:35:42それってcstdioですよね? stdio.hインクルードしてるんですが、言われます。
mffwってのを使ってました。
>>342
全くもってその通りなんですが、最近のgccではコンパイルできないので。。
0344デフォルトの名無しさん
2005/09/24(土) 16:36:58なんか、根本的にプロジェクト管理がわかっていない悪寒。
0345デフォルトの名無しさん
2005/09/24(土) 16:51:45mffwを使った方が簡潔に出来たのでそうしました。
というかフレームワーク(結局はmakefile)を使うのってそんなに不味かったでしょうか。
0346デフォルトの名無しさん
2005/09/24(土) 20:26:03main.ccからみたliba.hはlinuxでもVCでも変わらないんだろ?
それだったらlinuxでmakefileに書いたようにVCでもプロジェクトを作ればいいわけなんだが。
mffw使っているために、基準ディレクトリとか相対パスとか理解できてないんだろうなぁと思ってね。
で、C++を使う以上、gcc on linuxでもgcc on cygwinでもvcでも、いずれにしろstdio.hは使えなくなるぞ。
#つーか、cstdioを使うべき。
0347デフォルトの名無しさん
2005/09/26(月) 02:51:14今までfreebsdでソースコード書いて
cc hoge.cでコンパイル
./a.outで実行してたんですけど・・・
このソフトでたったそれだけやりたいんですけど、、
簡潔にやり方教えて下さい。。。
if for while switchとかまだそういう程度のプログラム勉強したもんで
0348デフォルトの名無しさん
2005/09/26(月) 03:19:10それなら、それを買わずに、Cygwinを使えば良かったのに。
スタートメニューからそれっぽい環境変数をセットしてコマンドプロンプトを開くのを選び、
目的のディレクトリに移動し、
cl
ってタイプしてリターン押してみ。
0349デフォルトの名無しさん
2005/09/26(月) 05:17:560350デフォルトの名無しさん
2005/09/26(月) 15:00:540351デフォルトの名無しさん
2005/09/26(月) 15:38:48"\""
strtok()よりsscanf()推奨。
0352デフォルトの名無しさん
2005/09/26(月) 16:14:26ありがとうございます。
0353デフォルトの名無しさん
2005/09/26(月) 16:40:29Cソース書いたんですが>>349氏の言うCtrl + F5できませんが
どうしてでしょうか
0354デフォルトの名無しさん
2005/09/26(月) 17:01:57VisualStudioはプロジェクトをこさえないとデバッグはできない。
好きなのを選べ。
・VisualStudioの使い方を覚える。
・コマンドラインからclを使う。
・VisualStudioは諦めてCygwinをインストールして擬似Unix環境を使う。
0355デフォルトの名無しさん
2005/09/26(月) 17:03:29本は買わずに済ませようと思ってるんだろうか?
0356デフォルトの名無しさん
2005/09/26(月) 22:22:08>BSCMAKE: warning BK4503 : .SBR ファイル '.\debug\stdafx.sbr' 中に重大でないエラーがありましたが、無視しました。
って警告が大量に出てくるんだけど、この表示を消すには
{STL|BSCMAKE|そもそもVisualC++}を使わない以外に解決策ないんでしょうか?
0357デフォルトの名無しさん
2005/09/26(月) 22:27:46コンパイルオプションの/YX"stdafx.h"外したら出なくなりました。
0358デフォルトの名無しさん
2005/09/26(月) 23:02:23returnでその文字列を返す関数を書いたのですが、
fcloseする直前までは正しい値なのですが、fcloseが動いた途端に文字列が変化してしまいます。
(下に書いたコードでは分かりずらいと思うのですが。。。)
ビルドしたときの警告に「ローカル変数またはテンポラリのアドレスを返します。」っていうのが出ているので、
これが原因だとは思うのですが、解決法が分かりません。
教えていただけないでしょうか。
/** 簡単な流れ **/
char* function()
{
char* szText;
:
:
szText = (テキストから欲しい文字列だけ読んでくる関数) ←ここでは正しく読み込めている。
:
:
fclose(filename); ←ここへくると文字列が変化してしまう。
return szText; ←正しくない文字列が返る
}
0359デフォルトの名無しさん
2005/09/26(月) 23:11:36その警告の対象になっている関数(おそらく(テキストから欲しい文字列だけ読んでくる関数)だと思われる)の
return 〜;をreturn strdup(〜);にしてみろ。
後で要らなくなったらfree()しろよ。
0360デフォルトの名無しさん
2005/09/26(月) 23:17:28すばやいレスありがとうございます!
無事に解決しました。
0362デフォルトの名無しさん
2005/09/26(月) 23:35:430364デフォルトの名無しさん
2005/09/27(火) 00:14:56B.h で 関数D のプロトタイプ宣言を行うと問題はないのですが、
B.h に書かずC.h に記述すると”予期せぬEOF〜”とエラーが出てしまうという、
変なバグで困ってます。
関数D を記述したいのは C.h の方なのでどうにか修正したいのですが、
この場合、エラーの原因にはどのようなものがあるのでしょうか?
0365デフォルトの名無しさん
2005/09/27(火) 00:26:250366デフォルトの名無しさん
2005/09/27(火) 00:46:14自分でプログラムしてゲームを作りたいと思うのですが、
DirectXを使ってゲームを作る場合はC++が良いなど聞くのですが
BASICよりも難しいと聞きます、
それなりにしっかりしたゲームのプログラムを作れるようになるまでに、
どのくらいの努力と年月が掛かるのでしょうか?
(ちなみに作りたいゲームは2Dのシュ=[ティングなのbナすが、DirectXを使ってみたいのです
0367デフォルトの名無しさん
2005/09/27(火) 02:25:26ゲーム製作板に行った方がまともな回答が来ると思うのだが・・・
結論から言うと、人それぞれ。
・1日に確保できる時間
・プログラミングのセンス、理解力
・やる気
この辺に個人差があるから何とも言えない。
概算で適当に答えておくと
1日3〜4時間ずつ勉強していったとして、
C++だけでも、文法をそれなりに理解するのに1年は必要。
VC++等でWinアプリを作りながらやっていったとしても、
シンプルな2Dのゲームを作れるようになるまでに、
最低で2〜3年くらいはかかると思う。
(プログラムの構成や処理の組み立て方を身に着けるのは本当に時間がかかる
DirectXはさらにそこから半年〜1年くらいかかると予想。
#まあ、たぶんもっと時間かかるだろうけど。
0368デフォルトの名無しさん
2005/09/27(火) 10:02:16学生時代に作ったけど、
1ヶ月目 C言語の配列ぐらいまでやった。対戦専用将棋作った
2ヶ月目 ポインタ・ファイル入出力ぐらいまで。テトリス作った
3ヶ月目 windowsプログラムで簡単なツール。圧縮解凍とか
4ヶ月目 DirectXで絵を適当に動かしたり勉強
5ヶ月目 ゲーム製作開始(シューティング)
7ヶ月目 ショボイけどとりあえず完成
な感じだった。他人は知らんが、自分はこんなもん。
0369デフォルトの名無しさん
2005/09/27(火) 11:16:112DSTGは5番目に作るゲームだよ
GamDevPukiWiki - 段階的学習!
http://gamdev.org/w/?%5B%5B%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%A1%AA%5D%5D
0370デフォルトの名無しさん
2005/09/27(火) 12:50:09そういうのの骨組みは普通のGUIで画像張っただけなの?
なんか別のやり方があるの?
0371デフォルトの名無しさん
2005/09/27(火) 12:57:130372デフォルトの名無しさん
2005/09/28(水) 16:11:23チェックした後、ビルト→実行してもメニューバーが表示されませんでした。
ですので名前を変えたところをすべてもとに戻して再度ビルトして実行しましたが
またメニューバーが表示されませんでした。
私の戻し忘れのエラーなんでしょうか?
0373デフォルトの名無しさん
2005/09/28(水) 21:46:45VC++6.0のConsoleApplicationでプログラムを書きました。
現在はバッチファイルを作って、
//--------------------------------
CALC.EXE InputFile1 OutputFile1
CALC.EXE InputFile2 OutputFile2
:
//--------------------------------
と記述して処理していますが、ファイルが増えるとバッチファイルを作るのがかなり大変です。
これを例えば
(1)フォルダ指定(argv[1]にInputFileのフォルダパス、argv[2]にOutputFileのフォルダパス)してそのフォルダにあるTXTファイルをInputFileとして全て計算させる、
(バッチファイルで"copy InputFileパス\*.txt OutputFileパス\*.txt"と書いたときのような感じで)
または、
(2)EXEのあるフォルダの全てのTXTファイルをInputFileとして計算させる(出力先は何とかする)、
というようなことは可能でしょうか。
C++でコーディングをしていますが、
コードが特に複雑ではないの関数は全てglobalで書いています。
0374デフォルトの名無しさん
2005/09/28(水) 21:47:58全部可能。
0375373
2005/09/28(水) 22:30:45どうすればよいのでしょうか??
教えていただけないでしょうか?
0376デフォルトの名無しさん
2005/09/28(水) 23:32:10ファイル名は連番だろ。
ofstream使ってバッチファイルを書き出してそれを最後に実行させるプログラムを作ればいいじゃないか。
0377375
2005/09/28(水) 23:41:56373のは少しでも分かりやすくしようと思って書いただけで。
誤解を招く書き方でした。すみません。
実際のファイル名は[西暦月日時間_実験条件.txt]です。
連番ならばバッチファイルでも全然楽なんですけどね。
0378デフォルトの名無しさん
2005/09/29(木) 14:08:23それでもFindFirstFile〜FindNextFileを使えばフォルダ内のファイルを列挙できる。
それぞれostringstreamやら_snprintfやらでコマンドライン文字列を作って、systemで実行させればいい。
0379デフォルトの名無しさん
2005/09/29(木) 15:17:53スレ違いになるのでみんな言わないんだろうし、条件や要求にもよるが、
こんな場合、少し気の利いた奴なら普通、.batスクリプトなどで for文と
メタキャラクタでのループを書いて、それだけでお終いだよねぇ……
0380デフォルトの名無しさん
2005/09/29(木) 15:32:02Cの標準関数でやる
その他(systemやバッチで手抜き)
下2つはスレ違い
0381デフォルトの名無しさん
2005/10/01(土) 04:39:48↓こいつモナー
0382デフォルトの名無しさん
2005/10/01(土) 10:06:490383デフォルトの名無しさん
2005/10/01(土) 10:23:14くだらないスレ
つまりsageるなということ。
0384デフォルトの名無しさん
2005/10/17(月) 00:09:04DOS窓を使って、*.cから直接実行ファイルを書き出すことは可能ですか?
gcc test.c -o test.out
みたいな感じです。
0385デフォルトの名無しさん
2005/10/17(月) 07:21:480386デフォルトの名無しさん
2005/10/17(月) 12:35:25専用のDOS窓でclするんですね。
ありがとうございました。
0387デフォルトの名無しさん
2005/10/17(月) 16:35:15ダイアログボックスのコントロールにメッセージ処理関数とか追加すると、
意図しないプロジェクトに関数が追加されたりして、
それだけでコンパイルエラーになったりして困っています。
これってバグですよね?
対応方法とか修正パッチとかあるのでしょうか?
教えてください。SP1は既にあてています。
0388デフォルトの名無しさん
2005/10/17(月) 17:41:390389デフォルトの名無しさん
2005/10/17(月) 17:50:43"xxx.c"を"xxx.exe"にコンパイル(?)する方法がわかりません。
具体的には"xxx.exe"のプログラム内容を変えたいのです。
まるでわからなくてごめんなさい。
0390デフォルトの名無しさん
2005/10/17(月) 18:00:03誰に言ってんの?
0391デフォルトの名無しさん
2005/10/17(月) 18:24:410392デフォルトの名無しさん
2005/10/17(月) 18:24:54F7押せ
0393デフォルトの名無しさん
2005/10/17(月) 18:26:06言ってる意味がわからないんだと思う。
0394デフォルトの名無しさん
2005/10/17(月) 18:27:40ゲームかなんかの話?
0395389
2005/10/17(月) 18:29:18と出てしまいます。
ちなみにxxx.cをMicrosoft Visual C++ 6.0のショートカットにドラッグ&ドロップしました。
何かxxx.cに問題があるんですね。
ありがとうございました。
0396デフォルトの名無しさん
2005/10/17(月) 18:32:20ファイル->新規作成でプロジェクト作って
プロジェクト->プロジェクトへ追加->ファイルでxxx.cを読み込ませる
0397デフォルトの名無しさん
2005/10/17(月) 18:36:540398デフォルトの名無しさん
2005/10/17(月) 18:50:00>>395のやり方でビルドしたら
デフォルトのワークスペースができるね
0399389
2005/10/17(月) 18:52:08ありがとうございました。なんとかコンパイルは成功しました。
再び質問で申し訳ないのですが、プログラムに
/* 時間データ読み込み */
void readtime(FILE *fi, FILE *fo)
{
char time[6] = "";
fseek(fi, 73, SEEK_SET);
fscanf(fi, "%5c", &time);
fprintf(fo, "%s\n", time);
}
なる箇所があって、これはファイルの時刻を読み込んで書き出しているのだろうと思います。
ところが、(読み込む対象の)データの時刻が9時間ほどずれていて、そのため後の計算も大幅にずれてしまうので困っています。
0:03:00を9:03:00にするようなことはできないでしょうか?
0400デフォルトの名無しさん
2005/10/17(月) 19:00:15エスパー出番です。
0401デフォルトの名無しさん
2005/10/17(月) 19:04:18はじめに書き込まれているファイルの時間が
GMTなので9時間ずれているんだと思う
あと、その手の質問はこっち向き↓
C言語なら俺に聞け! Part 115@プログラム
http://pc8.2ch.net/test/read.cgi/tech/1127737437/l50
0402389
2005/10/17(月) 19:08:38>>401
感謝です。
0403デフォルトの名無しさん
2005/10/17(月) 19:10:44補正はどうやってでも可能ではある(としか助言しようが無い)が、
ほんとにズレてんのか、あるいは標準時として処理する必要は無いのか、
なんてのも、わからないままなんだろうなあ、、、
0404デフォルトの名無しさん
2005/10/17(月) 19:29:52研究室の先輩や、同輩、他の研究室の知り合いに聞いたほうがいいぞ。
0405デフォルトの名無しさん
2005/10/18(火) 03:38:16WM_INITDIALOGのように画面が出る前の初期化処理ではなく、
画面が表示されてから1回だけしたい処理があるのですが、
そういうWMってないでしょうか...orz
今は、ダイアログプロシージャの中でstaticな変数をフラグにして
表示後1回だけ処理してるんですが。
0406デフォルトの名無しさん
2005/10/18(火) 07:37:240407デフォルトの名無しさん
2005/10/18(火) 17:53:18VC2002.netとVC2003.netのプロジェクトの互換性はありますか?
または同じプロジェクトファイルを相互に使いまわす方法はありますか?
やりたいこととしては、
私:vc2003.netを持っている
相手:vc2002.netを持っている
という状況で同じプロジェクトファイルを使えないか、ということです。
自分ひとりでテストできないのでまだ何のテストもできていません。
よろしくお願いします。
0408407
2005/10/18(火) 19:19:22ただし疑問としてはまだ持っていますので、教えて頂けるとうれしいです。
0409デフォルトの名無しさん
2005/10/18(火) 19:39:080410デフォルトの名無しさん
2005/10/18(火) 22:33:02pcap_handler の中でパケット毎に malloc を実行したら NULL を返してきました。
malloc() が NULL 返したとき、どうすればいいでしょうか。何か間違ってますか?
# 何度チェックしても NULL...。 Windows 再起動しても NULL...。
0411デフォルトの名無しさん
2005/10/18(火) 22:42:39引数の値がありえないほどの巨大な大きさになっていないか?
0412410
2005/10/19(水) 00:36:49>411
ありがとうございます。sizeof(構造体)で、28バイトです。
ソース変えながらいろいろ試してみます。
0413デフォルトの名無しさん
2005/10/19(水) 13:10:38その程度なら確保されるはずだが。
・初期化してない変数で確保したいサイズを渡している。
・mallocから受け取った変数がBuffer over writeなバグに侵食された。
と予測をたててみる。
0414デフォルトの名無しさん
2005/10/19(水) 16:00:211. メモリリークにより、メモリを食い尽くしていないか?
パフォーマンスカウンタ等でチェックする
2. Cランタイムの初期化は済んでいるか?
済んでいなければmallocは使えない。
初期化をするかCランタイムを使わず、
Win32APIを直接使う。HeapAllocとか。
0415デフォルトの名無しさん
2005/10/19(水) 21:49:17とりあえずmallocの行を晒してみろ。
0416414
2005/10/20(木) 00:20:20自分で作った関数にしていたら、Cランタイムの初期かとか行われなくなってしまうよ。
一見、DLLMainに直接飛んでくるように見えても、DLLのエントリポイントはDLLMainじゃないよ。
Cランタイムの初期化等を行う別の関数がエントリポイントで、そこからDLLMainを呼んでるよ。
0417誘導されて来ました
2005/10/21(金) 18:16:56「Visual C++.net Standard Version2003 アカデミック」
を購入しました。
6枚のCDを出したり入れたりして4段階のセットアップが完了し
早速起動してみました。
よくわからなかったのでとりあえず
ファイル⇒新規作成⇒プロジェクト
で「test」と名づけたプロジェクとを作成したところ
以後「既存のプロジェクトを開く」の一覧から「test」を左ダブルクリックで選択すると
選択した瞬間にエラーが発生してC++が強制再起動します。
また、その後に作成した「test2」というプロジェクトは
選択時はセーフなのですが
プロパティを見ようとすると同様に強制再起動します。
これの解決策をご教授くださいませ・・・
0418デフォルトの名無しさん
2005/10/21(金) 22:47:390419デフォルトの名無しさん
2005/10/22(土) 01:00:54たったそれだけの情報で、どうやって答えればいいのだ?
0420417
2005/10/22(土) 02:03:38これだけ示せば十分かと思ったので・・・
何を示せばいいのかもよくわかりません。
0421デフォルトの名無しさん
2005/10/22(土) 03:25:460422デフォルトの名無しさん
2005/10/22(土) 04:11:340423デフォルトの名無しさん
2005/10/22(土) 04:16:150424デフォルトの名無しさん
2005/10/22(土) 09:33:34今までは、間違ったファイル名をつけてしまった場合、プロジェクトから一度削除して、名前を変更した後に再度プロジェクトに追加していたんですが、面倒なので…。
ソールファイル名変更のリファクタリング機能はVC++にはないのでしょうか(´・ω・`)
0425デフォルトの名無しさん
2005/10/22(土) 11:03:54プロジェクトファイルを編集してファイル名を変更。
それさえ面倒なら、それをするスクリプトを用意する。
0426424
2005/10/22(土) 14:18:10プロジェクトファイルを直接編集する手がありましたか(^^;
それが一番手軽そうですね。
ありがとうございます。
0427デフォルトの名無しさん
2005/10/23(日) 01:14:180428勉強中の名無しさん
2005/10/23(日) 11:31:38Googleでもヘルプでもわからなかったので
Visual C++ .NET 2003 standard
ファイル−新規作成−プロジェクト で Win32プロジェクトで勝手にできあがったファイルに
コード追加して勉強してたんですが OPENFILENAME 構造体のところでつまずきました。
勝手にできあがったsample.cppのグローバル変数のところに
// グローバル変数 :
HINSTANCE hInst;
TCHAR szTitle[MAX_LOADSTRING];
TCHAR szWindowClass[MAX_LOADSTRING];
OPENFILENAME ofn; // ためしにここに追加した。
0429勉強中の名無しさん
2005/10/23(日) 11:36:02−−−−−−−−−
d:\C++.NET\TextEdit\TextEdit.cpp(12) : error C2146: 構文エラー : ';' が、識別子 'ofn' の前に必要です。
d:\C++.NET\TextEdit\TextEdit.cpp(12) : error C2501: 'OPENFILENAME' : 識別名を宣言するのに、型が指定されていません。
d:\C++.NET\TextEdit\TextEdit.cpp(12) : error C2501: 'ofn' : 識別名を宣言するのに、型が指定されていません。
−−−−−−−−−
というエラーが出ます。
空のプロジェクトで0からソース打ち込んだら、ちゃんとビルドしてくれました。
Win32プロジェクトで勝手にできあがったものではなぜかOPENFILENAME構造体のオブジェクトを作成できません。
おねがいします。
0430勉強中の名無しさん
2005/10/23(日) 11:42:300431デフォルトの名無しさん
2005/10/23(日) 11:43:54もうじき2006になっちゃいますが・・・。
0432デフォルトの名無しさん
2005/10/23(日) 12:06:03それコモンダイアログだからこれが必要
#include <commdlg.h>
0433勉強中の名無しさん
2005/10/23(日) 12:14:45出来ました。消すまいに確認してよかった
空のプロジェクトで作成したときには
#include <commdlg.h>
がなくても
#include <windows.h>
#include <windowsx.h>
だけで、出来たのが気になりますが...
「Microsoftだから」で納得することにします。
0434デフォルトの名無しさん
2005/10/23(日) 12:48:45<commdlg.h>は<Windows.h>の中でインクルードされる。
ただしWIN32_LEAN_AND_MEANが定義されていない場合。
VCのWin32プロジェクトでは#define WIN32_LEAN_AND_MEANが書かれているはず。
だから<commdlg.h>がインクルードされておらず>>428-429になったのだろう。
0435勉強中の名無しさん
2005/10/23(日) 13:13:55書かれていました。windows.hも確認したら、ちゃんとifndefされてました。orz
とりあえずは、WIN32_LEAN_AND_MEANをコメントにしてしまえば、windows.hはフルに使えると解釈しました。
WIN32_LEAN_AND_MEANしかstdafx.hに無かったし。
MFCのまえにAPIのさわりぐらい知ってからと思って勉強してましたが、危うく挫折するところでした。
とりあえずは、超初心者から初心者目指してがんばります。
0436410
2005/10/23(日) 13:16:19malloc() が NULL を返した件不本意ながら解決しました。
>> 413
> ・初期化してない変数で確保したいサイズを渡している。
> ・mallocから受け取った変数がBuffer over writeなバグに侵食された。
> と予測をたててみる。
前者は引数は sizeof(型)で打ってたので違います。
可能性だけだったら、後者がそうなのかもしれない。
>> 414=416
ありがとう。でも、DLL使っていません。
winpcap の developer's pack の basic_dump 編集しただけなので。
プログラム修正とプロジェクト作り直し同時にやったら直りました。
コードのロジックは変えていないので、プロジェクトのオプションが
悪さしたんだと推測しています。
0437デフォルトの名無しさん
2005/10/23(日) 17:06:26を購入してきました。
インストールをしようとしたら、
Microsoft FrontPage2000 Web Extensions Client
が、インストールできませんでした。
CDから直接 weccom.msi をクリックしてインストールすると、
『Windows XP Professional ServicePack 1 CDを挿入して下さい。』
というメッセージが出てきてしまいます。
パッケージにはXP Home Editionでも使えるとあったので購入したのですが、
なぜこんなエラーが出てインストールできないのでしょうか?
環境は、
OS:Windows XP Home Edition Version2002 SP1
CUP:Celeron 1.60GHz
メモリ:256MB
です。
対処法などを教えて下さい。お願いします。
0438デフォルトの名無しさん
2005/10/23(日) 17:21:260439437
2005/10/23(日) 17:25:36必須コンポーネットと『お使いになる前に』という冊子に書かれていたので。
これを入れないとダメなんですよね?
0440デフォルトの名無しさん
2005/10/23(日) 17:48:372003買うっつうことは、当分2005はでないの?
2005年内は無理か?
0441デフォルトの名無しさん
2005/10/23(日) 18:24:500442デフォルトの名無しさん
2005/10/23(日) 19:00:54最新の技術を追っかけたい人以外は。
0443デフォルトの名無しさん
2005/10/23(日) 21:57:50発売するのかな。2005中止にすりゃいいのに。どうせ発売後すぐに
2006とか出されるよりかは、万全にして出して欲しいな。
0444デフォルトの名無しさん
2005/10/23(日) 22:26:39Windows XPのCDがなければ、CDの代わりにC:\i386フォルダを指定してみろ。
0445デフォルトの名無しさん
2005/10/23(日) 22:55:15VC++をやってるのですが、
ソースの上のところに、
class XXXX; (XXXXは、他のソースで定義されているクラス名)
と宣言してある場合、どんな意味があるのでしょうか?
0446デフォルトの名無しさん
2005/10/24(月) 00:05:46前方宣言。
とりあえずそういう名前のクラスがあることだけを示す。
そのクラスを引数に取る関数の宣言や、そのクラスへのポインタ・参照をメンバに持つクラスなどの宣言では、
クラスの宣言は要らず前方宣言だけあれば良いのでヘッダ間の依存を減らせる。
(クラスの宣言はそれらの定義時には必要)
0447デフォルトの名無しさん
2005/10/25(火) 16:20:20プロジェクト hoge を作成した場合、ビルドしてできあがった実行ファイルは hoge.exe となりますが、
プロジェクト名はそのままで、出力する実行ファイルの名前を変える方法はありますでしょうか。
現在は、ビルドするたびにファイル名を変えて対処しています。
よろしくお願いします。
0448デフォルトの名無しさん
2005/10/25(火) 16:42:43↓
リンカ
↓
全般
↓
出力ファイル
0449447
2005/10/25(火) 17:07:30ありがとうございました。
0450デフォルトの名無しさん
2005/10/25(火) 18:22:26typedefしてULONG とか ULONG_PTRとかにするんだ?
構造体ならわからんでもないが
関数の戻り値で混乱しそうだよ(TT; わざわざキャストしたりしてたのに結局同じじゃないか
ただでさえ構造体多くて混乱しそうなのにぃ
0451デフォルトの名無しさん
2005/10/25(火) 18:29:190452デフォルトの名無しさん
2005/10/25(火) 21:31:35ULONGはunsigned longよりもタイプ数が少なくすむ。
ULONG_PTRは64bit移行準備用。
Win32のポインタは32bit、Win64のポインタは64ビット。
ULONG_PTRは64bit VCではポインタと同じサイズの64bit符号無し整数型のtypedefになるようになっている。
ポインタをunsigned longにキャストしていると後で対応が面倒になるからULONG_PTRを使おうということ。
0453デフォルトの名無しさん
2005/10/25(火) 21:47:02>>452
文字数節約のためではない。
ULONGが誰によって誰のためにtypedefされているのかを考えれば自ずとわかる。
0454デフォルトの名無しさん
2005/10/25(火) 23:26:33フォルダ内にある特定の拡張子のファイルを一括で編集するプログラムをMFCで作っています。
参照ボタンを追加して、SHBrowseForFolderでフォルダパスを取得してくるところまでは出来ました。
次に、実行ボタンでそのフォルダのなかのファイルを1つずつフルパスで取得して編集処理を行いたいのですが、
ファイル名の取得が上手くできません。
//-------------------------------------
(目的のファイルの拡張子をExtとします。)
CFileFind finder;
CString szPath;
BOOL bRet = FALSE;
bRet = finder.FindFile("*.Ext", 0); ---(1)
szPath = finder.GetFilePath(); ---(2)
while (bRet){
:
/** ファイル編集処理 **/
:
bRet = finder.FindNextFile();
szPath = finder.GetFilePath();
}
//-------------------------------------
(1)の部分でSHBrowseForFolderで取得してきたフォルダ下の目的の拡張子のファイルを検索させて、(2)の部分でGetFilePathでファイルのフルパスをszPathに入れたい。
でも、finder.FindFileでファイルを見つけられないでいます(デバッガで見るとbRet = FALSEになる)。
FindFileの第1引数を『フォルダパス\\*.Ext』にすると、
GetFilePathで例外エラーになってしまいます。
SHBrowseForFolderで取得してきたフォルダ下で、
特定の拡張子のファイルをフルパスで取得する方法をご教授ください。
0455デフォルトの名無しさん
2005/10/26(水) 00:48:43>>446のおかげで悩みが一発で解消した。
自作のウィンドウクラスがコンパイル通らなくて悩んでたんだが、おかげで無事完了できた。
多謝!!
0456デフォルトの名無しさん
2005/10/26(水) 05:11:43まず先に小言を言わせてくれ。
問題の切り分けくらい、やってから、質問してくれ。
この問題には、SHBrowseForFolderは一切関係ない。
で、本題だが。
いきなり答えを書いても学習しないだろうから、ヒントだけにしておく。
MSDNライブラリで、
・CFileFindクラスの概要と使い方の例
・GetFilePath
・FindNextFile
この3つのページを良く読めばすぐにわかる。5秒でわかる。
ていうか、マニュアルも読まずにコーディングするなよ・・・勘弁してね。
いや、CFileFindの仕様が一風変っているのもあるんだけど、
あれはあれで、他のものよりも良い仕様だとは思うんよ・・・。
0457デフォルトの名無しさん
2005/10/26(水) 09:31:45プロジェクトの中にフォルダを作って小分けにしてますが、
一旦ソリューションを閉じて開きなおすと、ソリューションエクスプローラ内で
縮小表示にしてあったフォルダが勝手に展開されて、
非常に鬱陶しいです(ファイル数が多いので)
これを抑止する方法はありませんか?
・・・と思ったら(一応)解決した・・・
要するに、開いてるドキュメントを含むフォルダは勝手に開いちゃうんだな。
それもちょっと鬱陶しい動作だけど。
0458454
2005/10/27(木) 01:34:59SHBrowseForFolderが別問題だってのは分かってたんですけどね。
自分の状況を出来るだけ詳しく説明しようとしたら書き方がおかしくなってしまいました。
で、今日456さんのレスを見る前にMSDNを見てたら1つ気づいたことがあって。
俺、CFileクラスのGetFilePathを見てたんですよ。
だからCFileFindクラスのGetFilePathを見てみたらFindNextFileを呼び出した後、って書いてあるじゃないっすか。
俺がアホでした。
というわけで、問題は無事に解決しました。
後はどう作り込んでいくかです。
あ、あとマニュアルについては。。。
うちの大学の研究室(電力系です)って結構いい加減なんですよね。。。
数年前の大掃除で捨てたかも、とかいわれる始末。。。
紙ベースのマニュアルがあるのかどうかも知らない状態なもんで。
0459デフォルトの名無しさん
2005/10/27(木) 05:42:20だと思うけど・・・
紙ベースのマニュアルなんて必要はないでしょ
MSDNインストールしてねーのか?
0460デフォルトの名無しさん
2005/10/27(木) 07:20:20資料を見ながらやっていいんだよ。
というか、
自分の記憶や予想に頼ったコーディングはしてはいけない。
トラブルがなくても、マニュアルで確認しつつコーディングするくらいでちょうど良い。
0461デフォルトの名無しさん
2005/10/27(木) 10:51:22CWnd::EnableWindow(...)
関数のような、使用許可・不許可の設定を行うことは可能ですか?
環境
* WindowsXP
* Visual C++ 6.0
0462デフォルトの名無しさん
2005/10/27(木) 16:21:42取り入れて設計していますか?
クラス設計や関連などの設計の一端のお話など聞かせていただければと。。。
0463デフォルトの名無しさん
2005/10/27(木) 18:19:58その話題は宗教論争の元になるから
専用のスレにいって聞いてくれると助かる
0464デフォルトの名無しさん
2005/10/27(木) 18:25:57有用な設計技術なら積極的にアプローチするのもいいと思ったのですが、
宗教論争に恣意的に巻き込もうとする視野の狭い技術者が
いまだに多いと言うことのあらわれなのでしょうかね。
他のスレあたってにます。失礼致します。
0465デフォルトの名無しさん
2005/10/27(木) 18:39:560466デフォルトの名無しさん
2005/10/27(木) 18:57:360467デフォルトの名無しさん
2005/10/27(木) 18:59:08こんなスレでいきがってますよーwww
0468デフォルトの名無しさん
2005/10/27(木) 19:01:02クラス設計だのオブジェクト指向だのの使い手だと
思い込んでいるんだと思う。
0469デフォルトの名無しさん
2005/10/27(木) 19:03:41VC使って具体的に実装するレベルのスレ
0470デフォルトの名無しさん
2005/10/27(木) 19:24:32たくさんいるから気にすんな。
0471461
2005/10/27(木) 21:18:270472デフォルトの名無しさん
2005/10/27(木) 21:57:18ちょっとC++自体からは外れてデザインパターンでも勉強してみたら?
0473デフォルトの名無しさん
2005/10/28(金) 11:43:08もしかしてレジストリ?
0474デフォルトの名無しさん
2005/10/28(金) 20:27:39レジストリっぽい
'Visiual Studio' フォルダを消して再インストールしても設定全然変わらんです
.
0475デフォルトの名無しさん
2005/10/31(月) 13:13:57LINK : fatal error LNK1201 プログラムデータベース C:\Docu...
に書き込めません。 ディスク容量不足、パスが無効、また十分な特権がない可能性
があります、となります。
どうしたらよいのでしょうか?
0476デフォルトの名無しさん
2005/10/31(月) 19:04:01新しいプロジェクトを作るとき、実は他にVBやらC#やら
その中でもWEBコントロールやらasp何たらやら
ActiveXコントロールなんたらやら、実にいろいろな種類があります。
こんなにいろいろあるのに、ほとんど使っていない自分。
なんかものすごくもったいない気がしています。
このまま一生使わないのかな。。。と。
それぞれ他のプロジェクトのことも知りたいのですし、
もしかしたら他のプロジェクトと組み合わせることで、
もっと効率的に早く仕事が出来たり、新しい技術を身に付けられたり
と漠然と考えているのですが、実際にいろいろ使っている方たちは、
どのようなきっかけで使うようになったのでしょう。
また、その時の勉強方法など、どのように苦労されてものにされましたか?
わかりにくい質問で申し訳ございません。
0477デフォルトの名無しさん
2005/10/31(月) 22:01:59それがきっかけになる。それまでは自分が
出来るもので技術を磨いておけば良い。
0478デフォルトの名無しさん
2005/10/31(月) 22:06:51動かしてみることだな。そうすると、こういうコントロールは
AvctiveXを使っているのか、とか、そういうのが分かるようになる。
そこで何かひらめいたら自分のアプリで応用できないか
考える。
0479476
2005/10/31(月) 22:45:55どうも。
0480デフォルトの名無しさん
2005/10/31(月) 23:24:35ていうか、あなたニセモノですけどサンクスw
0481デフォルトの名無しさん
2005/10/31(月) 23:31:17ディスクの容量に余裕があって、あんたが書き込みできるディレクトリでビルドすればいいと思うよ。
0482デフォルトの名無しさん
2005/11/01(火) 01:48:53ビルド対象のexeが実行中の可能性もある。タスクマネージャでも見れ。
0483デフォルトの名無しさん
2005/11/01(火) 13:14:16EXEが実行中なら、別のエラーが出ると思う。
>>475
プログラムデータベースというのは、拡張子pdbのファイルね。
デバッグのためのシンボル情報等々が格納されるファイルです。
エラーメッセージに書かれていることに対してチェックして、その結果くらい書こうよ。
・まずは、そのディレクトリにファイルを書きこむことができるかどうか確認する。その結果は?
・ディスク容量が十分にあることを確認する。その結果は?
・パスが有効であることを確認する。その結果は?
・十分な特権があることを確認する。その結果は?
それを確認してすべて、OKだった、ということを書かないと、誰も相手にしてくれないよ。
0484デフォルトの名無しさん
2005/11/01(火) 13:57:05上書きできないってだけなんじゃないかな?
0485デフォルトの名無しさん
2005/11/01(火) 20:14:0632x32-256色と16x16-256色の2種類のイメージを持った ico ファイルを普通にリソースとして読み込んでビルドしています。
実行ファイルのアイコンおよび実行時のタスクバーのアイコンは先の ico ファイルのものになりますが、
ウインドウ左上部分および ALT+TAB した時に表示されるアイコンはウインドウズ標準(青いタイトルバーの白い四角)のものが表示されてしまいます。
全部のアイコンを、先の ico ファイルにするにはどうしたらいいですか?
0486デフォルトの名無しさん
2005/11/01(火) 20:19:42if(loopTemp3>4)flagYp=2;else flagYp=0;
if(loopTemp2<4)flagXm=4;else flagXm=0;
if(loopTemp3<4)flagYm=8;else flagYm=0;
if(loopTemp2>loopTemp3)flagBYeX=16;else flagBYeX=0;
if(loopTemp2>-loopTemp3)flagAYemX=32;else flagAYemX=0;
if(loopTemp2<loopTemp3)flagAYeX=64;else flagAYeX=0;
if(loopTemp2>-loopTemp3)flagBYemX=128;else flagBYemX=0;
if(loopTemp2==loopTemp3)flagYeX=1000;else flagYeX=0;
if(loopTemp2==-loopTemp3)flagYemX=2000;else flagYemX=0;
if(loopTemp2==4)flagXZero=4000;else flagXZero=0;
if(loopTemp3==4)flagYZero=8000;else flagYZero=0;
flagStat=flagXp+flagXm+flagYp+flagYm+flagAYeX+flagBYeX+flagAYemX+flagBYemX+flagYeX+flagYemX+flagXZero+flagYZero;
switch(flagStat){
case '19':
でcase19にはいらないのはなぜですか
0487デフォルトの名無しさん
2005/11/01(火) 21:26:54この会社辞めようと思ったソースコード#12
http://pc8.2ch.net/test/read.cgi/prog/1125979700/
0488デフォルトの名無しさん
2005/11/01(火) 21:36:31事故解決しました
0489デフォルトの名無しさん
2005/11/01(火) 23:54:05その.icoファイルのリソースをLoadIcon()して、SetIcon()すればよろしかろ。
そうそう、MFCのテンプレートでは、コンストラクタで
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
OnInitDialog()で
SetIcon(m_hIcon, TRUE);// 大きいアイコンを設定
SetIcon(m_hIcon, FALSE);// 小さいアイコンを設定
としているけど、最後の行は設定しちゃうと大きいアイコンで小さいアイコンを上書きしちゃうので、
小さいアイコンも持っているなら実行しないこと。
0490デフォルトの名無しさん
2005/11/02(水) 10:25:02(中略)
アクセスが拒否されました
って出るのですがどうしたら解決できますか?
ちなみに「デバッグなしで開始」とすれば一応プログラムは正常に走ります。
0491デフォルトの名無しさん
2005/11/02(水) 12:40:21デバッグする権限がないのだと思う。
貴方はローカルのAdministratorsグループに入っていますか?
0492デフォルトの名無しさん
2005/11/02(水) 13:35:38リファクタリングしなさい
0493デフォルトの名無しさん
2005/11/02(水) 20:42:57AdmistratorsでなくともDebugger Usersに入れば十分。
0494デフォルトの名無しさん
2005/11/03(木) 04:43:11エディタ等が入ってないPCで
Visual C++で作られた dllファイルに一行追加したいんだけど、
サクラを入れてみたけど、文字化けで指定のところが編集できませんでした。
なにで編集すれば文字化け解消できますか?
0495デフォルトの名無しさん
2005/11/03(木) 07:36:320496デフォルトの名無しさん
2005/11/03(木) 08:09:19バイナリエディタ
そもそもなんでここに誘導されたかわからない。
0497Y-D
2005/11/03(木) 09:32:05デバッグウィンドウのウォッチで
デバッグ中に a を参照しようとしても
シンボル "a" が見つかりません と表示されます。
どなたか a を参照する方法を教えてください。
VCは6.0です。
0498デフォルトの名無しさん
2005/11/03(木) 11:45:140499Y-D
2005/11/03(木) 18:48:54可です。
あと、static でも関数の外で宣言した時は 可です。
0500デフォルトの名無しさん
2005/11/03(木) 21:51:44アセンブリ出力を見て、そのstatic変数につけられた名前を使うとか。
つーか、配置されたアドレスを得てそこを見ればいい気も。
0501494
2005/11/04(金) 02:43:35バイナリエディタでできそうですが、
2ビットの頭の私には
16進数は無理っぽいです。今日早めに出勤したので
会社のPCで片付けました。
今後のためにVisual C++は1台のライセンスでノートに入れたらだめですか?
0503デフォルトの名無しさん
2005/11/04(金) 02:48:26フックできません。
現在、DLLファイルにフックする処理を書き出しています。ローカルフックはできているようです。
フックのインストールは以下のように記述しています。
m_hHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, GetDllInstance(), 0);
#GetDllInstance()の戻り値はDllMainの第1引数です。
どのようにしたらグローバルフックできますか?
環境はVC++.net 2003です。
#http://support.microsoft.com/default.aspx?scid=kb;ja;318804#XSLTH3133121121120121120120
#あたりも少し気になっていますが。
0504デフォルトの名無しさん
2005/11/04(金) 11:09:08vector<int> v;
vector<int>::iterator the_iterator;
v.push_back(1);
the_iterator = v.begin()+1;
v.push_back(2);
としたときthe_iteratorは最初の要素1をさしてるんでしょうか?
0505デフォルトの名無しさん
2005/11/04(金) 11:14:12じゃなくて
v.begin();
でした。
やってみたらイテレータを代入したあとで要素の追加をしたらイテレータの指す場所が変わってしまうんですが、要素を追加してもイテレータを保存しておく方法ないですか?
0506デフォルトの名無しさん
2005/11/04(金) 12:00:18> 今後のためにVisual C++は1台のライセンスでノートに入れたらだめですか?
1台用のライセンスなら、2台に入れたらダメだろう。
ライセンスの内容をチェックしてみ。1台用ではなく1人用かもしれないから。
0507デフォルトの名無しさん
2005/11/04(金) 12:02:21ない。
0508507
2005/11/04(金) 12:06:10そういう場合には、イテレータではなく、atやoperator[]を使えばいい。
というか、イテレータが何者か、勉強してから使わないと、痛い目にあうよ。
0509デフォルトの名無しさん
2005/11/04(金) 12:11:12vectorへの要素の追加で、それまでに内部的に確保していたメモリでは足りなくなったら
新たに必要分を確保しないといけない。たいてい、これは「新領域確保→コピー→
旧領域解放」となる。
vectorでないコンテナの場合は、要素の追加でソートが発生するかもしれない。
以上から、要素の追加・削除があった場合は、期待したとおり動作するとは限らない。
従って、イテレータを保存しておいても意味のある結果は得られない。
ただし、vectorの実装が「要求された要素数の倍だけ、新たに確保する」場合、
つまり例えばvector<int> v(100);のときなら内部的に200まで確保される場合、
the_iteratorは100〜199個までの要素の追加では変化しないかもしれない。
コンパイラのバージョン変更で動作しなくなる危険はあるけど。
0510デフォルトの名無しさん
2005/11/04(金) 14:31:18●●->
って打つとメンバの候補でてきますよね。
あれが更新されなくなってしまって(古いの
がでる)。
どうしたらなおりますかね?
0511デフォルトの名無しさん
2005/11/04(金) 14:44:51プロジェクトフォルダ内の●●.ncbを一旦削除すると直る可能性もある。
0512デフォルトの名無しさん
2005/11/04(金) 14:54:40ありがとうございます!!!!!!
0513デフォルトの名無しさん
2005/11/04(金) 16:04:200514デフォルトの名無しさん
2005/11/04(金) 16:19:19イテレータを無効にしたくないならstd::listでも使えば?
0515デフォルトの名無しさん
2005/11/04(金) 16:50:45http://pc8.2ch.net/test/read.cgi/tech/1130680264/
C++相談室 part44
http://pc8.2ch.net/test/read.cgi/tech/1128512737/
【初心者歓迎】C/C++室 Ver.22【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1128872687/
0516デフォルトの名無しさん
2005/11/04(金) 17:06:070517デフォルトの名無しさん
2005/11/04(金) 17:13:11エラーメッセージをダブルクリックしてもプログラムのある行に飛ばないのですが
ライブラリはどのように指定したらいいのでしょうか?
0518デフォルトの名無しさん
2005/11/04(金) 17:23:250519デフォルトの名無しさん
2005/11/04(金) 17:48:59fatal error インクルードファイルがオープンできません。
'ntddndis.h' : No such file or directory というエラーが
でてきます。このファイル自体は存在しており、コンパイルを
したソースのフォルダにntddndis.hを入れても、エラーが消えません。
何が原因なのでしょうか?
0520デフォルトの名無しさん
2005/11/04(金) 18:26:140521デフォルトの名無しさん
2005/11/04(金) 18:29:01Visula Studio 2003 の時は、このようなエラーはでなかった
です。
0522デフォルトの名無しさん
2005/11/04(金) 18:55:24Cの時に使っていた
#define printd(...) { printf(__VA_ARGS__); }
という感じの printf の置き換えマクロがあるんですが、
... の部分が予期せぬ文字列が・・というエラーが、
__VA_ARGS__に至っては定義されていない識別子、というエラーが出て
コンパイルが通りません。
VC++では可変長引数のマクロは使えないのでしょうか?
0523デフォルトの名無しさん
2005/11/04(金) 19:03:22ぐぐってみたりしたんですが、VC++では使えないマクロのようですね・・
なんかちょっとガッカリ。
解決してませんが、自己解決ってことで。
お邪魔しました。
0524デフォルトの名無しさん
2005/11/04(金) 19:05:30Cスレにでも行って確認してこい
0525デフォルトの名無しさん
2005/11/04(金) 19:19:31CWでは使えたんですがどうも使えないVC++が少数派っぽいです。
VC++用に書式が変わっちゃうのも癪なんですが、これはしょうが無いのかなぁ・・
まぁIDEのアウトプットにはprintfで出せないので書き直さないといけないですけど。
0526デフォルトの名無しさん
2005/11/04(金) 20:44:020527デフォルトの名無しさん
2005/11/04(金) 20:46:570528デフォルトの名無しさん
2005/11/04(金) 21:08:29構造体の最後のメンバが配列のときその要素数を省略できる機能も独自拡張として使える。
0529デフォルトの名無しさん
2005/11/05(土) 01:31:08vc使ってデバッグをしているのですが、よくOSごとフリーズしてしまって
リセット→再起動の繰り返しで困っています。
具具って見た結果、コントロールパネルから言語設定をいじってみると
直る可能性があるということを知りましたので、その設定どおりに
設定してみましたが、なんら変わりません。
なにかほかに原因があるのでしょうか?
0530デフォルトの名無しさん
2005/11/05(土) 15:23:110531デフォルトの名無しさん
2005/11/05(土) 16:02:59リソースを食いつぶしているんじゃないか?
0532デフォルトの名無しさん
2005/11/05(土) 16:24:35エラーの内容は
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xmemory(137): error C3861: '_Allocate': 識別子は、引数依存の照合を使用しても見つかりません。
と出ます。
xmemoryの137行目は
pointer allocate(size_type _Count)
{// allocate array of _Count elements
return (_Allocate(_Count, (pointer)0));
}
となっています。
0533デフォルトの名無しさん
2005/11/05(土) 16:38:050534デフォルトの名無しさん
2005/11/05(土) 20:04:36買った人いる?
0535デフォルトの名無しさん
2005/11/06(日) 09:09:17DelphiにおけるIndyコンポーネントのようなライブラリはあるでしょうか?
0536デフォルトの名無しさん
2005/11/06(日) 09:10:380537デフォルトの名無しさん
2005/11/06(日) 21:02:050538デフォルトの名無しさん
2005/11/06(日) 22:06:230539デフォルトの名無しさん
2005/11/06(日) 22:26:30ソースコードにそういう記述をすることは出来るが、それが正しく動くかどうかは別問題。
おそらく動かない。動いたら偶然であり、他の用で使っているところということになる。
(ただしWPARAM/LPARAMなどポインタを整数型にキャストしたものをポインタ型へ戻すキャストなら問題ない)
0540デフォルトの名無しさん
2005/11/07(月) 00:29:170541540
2005/11/07(月) 00:30:57double aaa[256][256];
0542デフォルトの名無しさん
2005/11/07(月) 00:36:15スタックサイズには限りがある。
増やしたいならリンクオプションでスタックサイズを指定してやる。
もしくは素直に動的確保 or STLを使う。
0544デフォルトの名無しさん
2005/11/07(月) 23:28:58char*でいいのかと思いきやTCHAR*とか_TCHAR*とか、
LPCTSTR(定数文字列?)にLPTSTRとかなんかいっぱい。
いろいろドキュメント読んでると、UNICODEとかMBCSとか互換性とか
あちこちちりばめられて解説されてはいるのですけど、
どういう方針でやるのが一番いいのかチンプンカンプンになってしまいました。
書籍などを探しても、この辺の話に触れている本って
いまだかつて見たことが無いです。
あっても、2,3行の説明でちっとも詳しくはありません。
一貫してこう扱えばいいよ、というような指針を示している
本とかサイトってどこかに無いでしょうか。
それとも皆さんはそれほど気にしてないのでしょうか。
0545デフォルトの名無しさん
2005/11/07(月) 23:50:57さて、WinAPIでは2種類の文字列を扱う。1つはMBCS(日本語WinではShift JIS)ともう1つはUnicodeだ。
引数や戻り値に文字列が使われる関数では通常MBCS/Unicodeの2種類が提供されている。
ところがWin 9xでは原則MBCS版しか使えないのだ。しかし世の中は確実にUnicodeの方へ動いている。
そこで、MSは考えた。1つのソースコードでMBCS版とUnicode版の両方のEXE(やDLL)を作れるようにしてしまえばいい。
というわけでコンパイル時に#define UNICODEがあるかどうかで、charとwchar_tのどちらかになるデータ型TCHARが作られた。
(実際には#defineよりもコンパイラオプションで指定するだろうが)
LPCTSTRはconst TCHAR *のtypedefで、LPTSTRはTCHAR *のtypedefだ。
ちなみにtypedefといえば上のTCHARをcharやwchar_tに置き換えたものとしてLPCSTR/LPSTR, LPCWSTR/LPWSTRもある。
さらにそれらのLなし版(PCTSTRやPSTRなどと言った具合)もある。Win16ではLの有り無しで違いがあったが今は同じ。
このように<Windows.h>の中ではいろいろとtypedefがなされている。
さらにMSはCライブラリ関数にもこのTCHARの仕組みを導入してきた。
CライブラリがWindows.hに依存するのも格好悪いので独自に<tchar.h>を作って対応することにした。
その中で_TCHARがtypedefされている。
0546デフォルトの名無しさん
2005/11/08(火) 08:50:36C++内で制御するにはどうすればいいでしょう?
0547デフォルトの名無しさん
2005/11/08(火) 21:06:33SetWindowsHookEx(WH_KEYBOARD, ・・
を使うとか
0548デフォルトの名無しさん
2005/11/09(水) 02:31:18PlatformSDKはXP SP2ってのをインストールすればよいのでしょうか。
それとも、もっと新しい2003ってのでしょうか。
0549デフォルトの名無しさん
2005/11/09(水) 07:48:40Platform SDKは必要になってから入れればいい。
Win XP専用のアプリケーションを作るからといって最新のものを入れる必要はない。
0550デフォルトの名無しさん
2005/11/09(水) 11:37:02VC++2003でWinPcap( ttp://www.winpcap.org/ )というライブラリを使いたいのですが、次のメッセージが表示されてリンクできません。この問題の解消方法を教えて下さい。
apollo1 error LNK2019: 未解決の外部シンボル _pcap_open_offline が関数 "public: void __thiscall Capollo1Dlg::OnBnClickedButtonStart(void)" (?OnBnClickedButtonStart@Capollo1Dlg@@QAEXXZ) で参照されました。
これまでにやったこと
●プロジェクトメニューのapollo1のプロパティのC/C++の全般の追加のインクルードディレクトリの右端のボタンを押すと、マクロ一覧が見られるダイアログが表示されるので、ここでマクロを使って指定。「$(VCInstallDir)WinPcap\WpdPack\Include」と指定した。
●同様にして、リンカの全般の追加のライブラリディレクトリも指定した。
●C/C++のプリプロセッサのプロセッサの定義に「WPCAP」を追加。
●ツールメニューのオプションのプロジェクトのVC++ディレクトリの「インクルードファイル」と「ライブラリファイル」のパスにも追加した。
●dumpbin /all wpcap.libで確認したところ、wpcap.libには_pcap_open_offlineは存在している。
●wpcap.libをF:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\libにコピー。
上記の方法を全てとっても、ダメでした。
お願いします。
0551550
2005/11/09(水) 14:55:01VS2003の「プロジェクト」メニューの「apollo1のプロパティ」を選択し、「リンカ」の「入力」の「追加の依存ファイル」に「wpcap.lib」を追加したところ、リンクに成功しました。リンクするライブラリを明示的に指定する必要があるのですね。お騒がせしました。
0552デフォルトの名無しさん
2005/11/09(水) 20:37:250553デフォルトの名無しさん
2005/11/09(水) 20:50:31IDE(除くToolkit類)やMFC/ATLなどのライブラリ。
0554デフォルトの名無しさん
2005/11/09(水) 20:52:55C++はプログラミング言語のひとつ
0555デフォルトの名無しさん
2005/11/10(木) 20:04:24新規作成 > VisualC++の空のプロジェクト
> 新しい項目の追加 で.cファイルを作りました。
ソースを書いてCtrl + F5でうまくコンパイル、実行できました。
また新しいソースを作ろうと思って、新しい項目の追加で同じように
Cソースを書いてCtrl + F5をしても
「C勉強 error LNK2005: _main は既に test.obj で定義されています。」
「C勉強 fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。」
とエラーになってしまいます。
新しいCファイルをまた書いてコンパイル、実行するにはどうすればいいのでしょうか
教えてください。
0556デフォルトの名無しさん
2005/11/10(木) 20:16:09もう一個ソリューションを作る。
または前のソースファイルを削除する。
0557555
2005/11/10(木) 20:22:32追加すればいいのかと思ってました。
前のソースファイルは別にフォルダに全部保存することにします。
ありがとうございました。
0558デフォルトの名無しさん
2005/11/13(日) 16:08:41BMP表示で詰まっています。
WM_PAINTでBeginPaint()を使って画像を表示するのはできたのですが、WM_CHAR
を受け取ったときにも何か表示するようにしようと、そこにもBeginPaint()を使って画像
を描写する処理を入れたところ表示してくれません。
なのでGetDCを使って表示したのですがこんどはGetDCで描写した部分が隠れ
てまた現れたときに再描写してくれません。
GetDCを使って表示した部分をWM_PAINTで再描写するために何か処理がいる
のでしょうか?それともそもそも根本的に考え方が間違ってるのでしょうか?
0559デフォルトの名無しさん
2005/11/13(日) 16:09:31void ShowBMP(HWND hWnd, HDC hdc, int mode)
{
HDC hmdc;
HBITMAP hBitmap;
BITMAP bmp;
HINSTANCE hInst;
int BMP_W, BMP_H;
hInst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
if(mode == 1){
hBitmap = LoadBitmap(hInst, "BMP_HAIKEI01");
}else if(mode == 2){
hBitmap = LoadBitmap(hInst, "BMP_HAIKEI02");
}
GetObject(hBitmap, sizeof(BITMAP), &bmp);
BMP_W = (int)bmp.bmWidth;
BMP_H = (int)bmp.bmHeight;
hmdc = CreateCompatibleDC(hdc);
SelectObject(hmdc, hBitmap);
if(mode == 1){
BitBlt(hdc, 0, 0, BMP_W, BMP_H, hmdc, 0, 0, SRCCOPY);
}else if(mode == 2){
BitBlt(hdc, 120, 0, BMP_W, BMP_H, hmdc, 0, 0, SRCCOPY);
}
DeleteDC(hmdc);
DeleteObject(hBitmap);
return;
}
0560558
2005/11/13(日) 16:13:18{
HDC hdc;
PAINTSTRUCT ps;
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
ShowBMP(hWnd, hdc,1);
EndPaint(hWnd, &ps);
break;
case WM_CHAR:
hdc = BeginPaint(hWnd, &ps);
ShowBMP(hWnd, hdc,2);
EndPaint(hWnd, &ps);
break;
default:
return(DefWindowProc(hWnd, msg, wParam, lParam));
}
return (0L);
}
0561デフォルトの名無しさん
2005/11/13(日) 16:15:16case WM_CHAR:
hdc = BeginPaint(hWnd, &ps);
ShowBMP(hWnd, hdc,2);
EndPaint(hWnd, &ps);
を
case WM_CHAR:
hdc = GetDC( hWnd );
ShowBMP(hWnd, hdc,2);
ReleaseDC(hWnd, hdc);
break;
にするとキーを押したときに描写はしてくれるのですが、隠れてまた現れた
ときに再描写してくれません。
どなかたご教授お願いします。
0562デフォルトの名無しさん
2005/11/13(日) 16:40:58だから自動的には再描写されない。
再描写はWM_PAINTでやるのが普通
BeginPaintは基本的にWM_PAINTでしか使わない
0563デフォルトの名無しさん
2005/11/13(日) 17:48:49じゃあ画面の状態を入れとく構造体か何かを用意してキーが押されたらWV_CHARでその中身を変更、WV_PAINTでその構造体をもとに描写、ってやるのがいいのかな。
だとすると任意のタイミングでWV_PAINTを呼び出す必要がありそうですね。
色々調べてみます、ありがとうございました。
0564デフォルトの名無しさん
2005/11/13(日) 18:21:33ピクセルで取得するにはどうしたらいいのでしょうか?
そのテキストボックス内のフォント、フォントサイズは切り替わる可能性があるので
フォントの状態とかもみてサイズを出してくれるような関数ってあるんでしょうか?
GetTextExtent()とか使ってみたのですが上手くいきませんでした。
どなたかご回答お願いいたします。
0565デフォルトの名無しさん
2005/11/13(日) 18:33:39GetTextExtentPoint32
0567デフォルトの名無しさん
2005/11/13(日) 19:14:200568558
2005/11/13(日) 23:26:57なるほどー、その関数で無理やり無効領域を発生させて
WM_PAINTを呼び出すっていうやり方が一般的みたいですね。
覚えることいっぱい、呪文いっぱいで大変だぁ・・・
0569デフォルトの名無しさん
2005/11/13(日) 23:29:28無理やりって表現がアレだけどね。
無理やりじゃないし。
0570デフォルトの名無しさん
2005/11/13(日) 23:31:110571デフォルトの名無しさん
2005/11/13(日) 23:35:310572デフォルトの名無しさん
2005/11/14(月) 00:12:15こういう何も考えてない発言は死滅すべきである
0573デフォルトの名無しさん
2005/11/14(月) 23:45:320574デフォルトの名無しさん
2005/11/14(月) 23:47:180575デフォルトの名無しさん
2005/11/16(水) 23:41:43defファイルからdllを読み込むためのlibファイルを生成しようとしているのですが、
DOSプロンプトで
(略)\Microsoft Visual Studio 8\VC\bin\lib.exe /def:libchasen.def /out:libchasen.lib
とやってもファイルを生成するどころか、エラーログも吐いてくれません。
パスを通してから「lib /def:(略」とやっても同じです。
色々サイトを回ってみても、上記のようにすればOKとしか書いてなくて…
どうすれば良いのでしょうか。
0576デフォルトの名無しさん
2005/11/17(木) 01:18:25コンピュータの中を検索してみな。
意外と思わぬところに出力されていないかな?
0577デフォルトの名無しさん
2005/11/17(木) 02:31:11ありがとうございます。
早速VCをインストールしたドライブと、
defファイルの置いてある(Chasenをインストールした)ドライブをそれぞれ
検索してみましたが、残念ながら見つかりませんでした。
友人にも一応同じVC++ Express使いがいるので、
明日そっちの方でも試してもらおうと思います。
0578デフォルトの名無しさん
2005/11/17(木) 09:37:48expressにあるかどうか知らないが
0579デフォルトの名無しさん
2005/11/17(木) 12:02:17朝起きて試してみたら出来ました!
3日詰まってたんですが、やっとchasenライブラリが利用できるようになりました。
本当にありがとうございました。
0580デフォルトの名無しさん
2005/11/18(金) 16:50:53Visual C++ 2005 express Beta2を今日ダウンロードして
WIN2000SP4にインスコしたんだけど、ビルドがこける。
最初はCLSがどうたらってでたんで、それを切るようにプロジェクト
プロパティから設定したら、今度は「systemとは何ですか?」
みたいなエラーをほぼ全文に対して連発してビルド不可能。
ちなみにビルドしているのは、ウィンドウアプリの新規作成したてや
コンソールアプリ新規作成したて。
これでエラーってことは、インスコ失敗でしょうか?
0581デフォルトの名無しさん
2005/11/20(日) 01:03:57参考になる書籍がありましたら教えてください。
よろしくお願いいたします。
0582デフォルトの名無しさん
2005/11/20(日) 09:41:54「フォームを閉じるボタン」を設置してフォームをとじようとしてるのですが。
1.イベントハンドラが右クリックから選択できない。
2.ボタンクリックして、開いた場所に「Form1.Close();」「Form->Close();」とやってもエラー
ということで困ってます。
使用言語はC++.NETスタンダードです。
本を見てもさっぱりなんで、よろしくおねがいします。
0583デフォルトの名無しさん
2005/11/21(月) 00:07:04ウインドウでゲームを作っています。BitBltで背景マップ
を出してその上にキャラクターを表示したいのですが、
MFCやDirectXを使わずに透明色の処理を行うことは
できますか?それともAPIだけでは難しいのでしょうか。
よろしくお願いいたします。
0584デフォルトの名無しさん
2005/11/21(月) 00:12:540585デフォルトの名無しさん
2005/11/21(月) 00:13:25早速インストールして、サービスパックをダウンロードしようとしたのですが、
どこに行っても見つかりません。
一応ここ↓までは見つけたのですが、
ttp://www.microsoft.com/japan/msdn/vstudio/downloads/sp/download.asp
リンク先が404になっていてダウンロードできません。
他にサービスパックを手に入れる手段を知っている方がいたら、教えていただけないでしょうか?
0586デフォルトの名無しさん
2005/11/21(月) 00:21:080587デフォルトの名無しさん
2005/11/21(月) 00:22:540588デフォルトの名無しさん
2005/11/21(月) 00:39:360589デフォルトの名無しさん
2005/11/21(月) 01:02:320590585
2005/11/21(月) 01:24:56久しぶりの秋葉原で、ちょっと財布の中身が充実してて、
路上でふと脇を見たら「Visual C++ Professional Edition」と書かれたパッケージがあったもので。
バージョンが5.0だというのはインストールするときに気が付きました。
せめてパッチぐらい当てたいんです。
手に入れる方法はないでしょうか?
0591デフォルトの名無しさん
2005/11/21(月) 01:59:35調べてみたらファイルは生きてたから、ネタじゃないならどうぞ。
ttp://download.microsoft.com/download/vstudio97ent/sp3/full/win98/en-us/vssp3_1.exe
ttp://download.microsoft.com/download/vstudio97ent/sp3/full/win98/en-us/vssp3_2.cab
ttp://download.microsoft.com/download/vstudio97ent/sp3/full/win98/en-us/vssp3_3.cab
ttp://download.microsoft.com/download/vstudio97ent/sp3/full/win98/en-us/vssp3_4.cab
ttp://download.microsoft.com/download/vstudio97ent/sp3/full/win98/en-us/vssp3_5.cab
ttp://download.microsoft.com/download/vstudio97ent/sp3/full/win98/en-us/vssp3_6.cab
ttp://download.microsoft.com/download/vstudio97ent/sp3/full/win98/en-us/vssp3_7.cab
ttp://download.microsoft.com/download/vstudio97ent/sp3/full/win98/en-us/vssp3_8.cab
ttp://download.microsoft.com/download/vstudio97ent/sp3/full/win98/en-us/vssp3_9.cab
0593デフォルトの名無しさん
2005/11/21(月) 17:19:520594デフォルトの名無しさん
2005/11/21(月) 23:21:02>ウインドウでゲームを作っています。
寒くなってきたからガラス窓でやってるのかと思った。
0596デフォルトの名無しさん
2005/11/25(金) 19:51:24他のシステムに持って行くことが多いので、
ソースファイルは UTF-8 にしています。
できあがったコンソールアプリを実行しても、
コードページ 932 なコンソールの中で動くので
文字がぐちゃぐちゃになってしまいます。
コンソールアプリの起動時のコードページを
指定するって事は可能なんでしょうか?
0597デフォルトの名無しさん
2005/11/25(金) 19:56:140598デフォルトの名無しさん
2005/11/25(金) 20:45:20作っているアプリが Linux とソースコード共用なので
なんとかそういうことは避けたかったんですが・・・
Windows ではコードページとして UTF-8 は無いんでしょうか?
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=133659&SiteID=1
これによると 65001 は pseudo codepage で、
setlocale で指定してもはじかれるからだめよ〜って事みたいです。
0599デフォルトの名無しさん
2005/11/25(金) 21:11:57Shift JIS文字がソースコード中に含まれていると
だめなので、UTF-8 にしてたんですが、そもそも
gcc/g++ とソースファイルを共用にしなきゃならない時点で
多バイト文字をソースコード中に含ませるのは
あきらめなきゃならなかったんですね・・
GNU gettext を使うことになるわけですが、
Windows で gettext がまともに使えるのかどうか・・・
GetText for Windows
http://gnuwin32.sourceforge.net/packages/gettext.htm
0600デフォルトの名無しさん
2005/11/25(金) 22:01:590601デフォルトの名無しさん
2005/11/25(金) 22:09:53というわけで、面倒だから英語にしました、メッセージ。
0602デフォルトの名無しさん
2005/11/25(金) 22:43:060603デフォルトの名無しさん
2005/11/25(金) 23:10:560604デフォルトの名無しさん
2005/11/25(金) 23:58:47プリプロセッサを仕掛ければいいじゃん。
0605デフォルトの名無しさん
2005/11/26(土) 00:32:27MSのVisual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使うのページを見て
インストールしようと思っています。
Visual C++ 2005 Express Edition の方はできたのですが、Platform SDKのインストールのやり方がわかりません。
とりあえずcabとexeのファイルは全部落としたのですが、その先がどうしていいやら。
パスを通したいのですがインストールができないのでどうしようもありません。
どうかよろしくお願いします。
0606デフォルトの名無しさん
2005/11/26(土) 00:38:390607デフォルトの名無しさん
2005/11/26(土) 02:12:17ありがとうございます。そうしたらインストールできました。
インストールはできたのですが、パスの通し方がわかりません。
初心者にこのマニュアルは敷居が高すぎです。
[オプション] ダイアログ ボックスの [プロジェクトとソリューション] セクションで [Visual C++ フォルダ] のところを
クリックするとプラットフォームがwin32、ディレクトリを表示するプログラムが実行可能ファイルと出てます。
ここでokをクリックすると何も反応がありません。
実行可能ファイルがExecutable ファイルだと思うのですが。
以下のように設定するにはどうすればいいのでしょうか?
Executable ファイル - 「C:\Program Files\Microsoft SDK\Bin」
Include ファイル - 「C:\Program Files\Microsoft SDK\include」
Library ファイル - 「C:\Program Files\Microsoft SDK\lib」
0608デフォルトの名無しさん
2005/11/26(土) 02:59:29"%USERPROFILE%\Local Settings\Application Data\Microsoft\VCExpress\8.0" の"vccomponents.dat" を
消すことでいいみたいでした。
さらに
“%ProgramFiles%\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1033\"の
"AppSettings.htm "の441 - 444 行をコメントアウトするみたいですが、"\1033"フォルダがありません。
あるのは"\1041"フォルダだけです。
どうすればいいでしょう?
今日はギブ。
0609デフォルトの名無しさん
2005/11/26(土) 04:08:010610デフォルトの名無しさん
2005/11/26(土) 11:00:57int a = 1;
bool b;
b = (bool)a;
とした場合、
'int' : ブール値を 'true' または 'false' に強制的に設定します (警告の処理)
という警告が出てしまいます orz
(bool)という型キャストは効かないんでしょうか。
どなたか助けてください m(__)m
0611デフォルトの名無しさん
2005/11/26(土) 11:02:43| >>1.おお、
| 凄ぇぇぇぇ
\__ ______
∨
∧晒∧
(・∀・ )
−−−8<−−−8<−−−
IPアドレス 61.21.153.232
ホスト名 61-21-153-232.rev.home.ne.jp
0612デフォルトの名無しさん
2005/11/26(土) 11:06:12乙です
0613610
2005/11/26(土) 11:17:19int a = 1;
bool b;
b = static_cast<bool>(a);
も駄目なんですけど・・なんで〜 (T_T)
0614デフォルトの名無しさん
2005/11/26(土) 11:30:20b = a ? true : false;
0616デフォルトの名無しさん
2005/11/26(土) 11:38:17そりゃぁあんた、>614を「キャストする」積もりで書く香具師はいないから検索に引っ掛からないんだろ。
キャストで誤魔化すのではなく、本来の意味を考えれば>614に思い至らないのがおかしいのだが。
0617610
2005/11/26(土) 11:52:080618デフォルトの名無しさん
2005/11/26(土) 13:07:09では何が相当するんでしょうか。各関数の呼び出し回数と
そこでの消費時間などを調べたいのですが。
0619デフォルトの名無しさん
2005/11/26(土) 13:38:380620デフォルトの名無しさん
2005/11/26(土) 13:50:31Visual Studio .NET 2003 theSpoke です。
もっと上位のVSにしかついていないみたいですね。
DevPartner Profiler Community Edition
The profiler of choice for Visual Studio.NET
http://www.compuware.co.jp/products/devpartner/dpsprofiler.html
これを試してみることにします。
0621デフォルトの名無しさん
2005/11/26(土) 16:09:560622デフォルトの名無しさん
2005/11/26(土) 16:11:100623デフォルトの名無しさん
2005/11/26(土) 21:39:13ダブル型の数字を誤差のないように小数以下切捨てで計算したいのですが、
char *a = "0.145";
double d = atof(a);
int m = int(d * 5000);
とかすると、誤差の出る計算式があります。
ので、いろいろ調べて、ceilを使うと、今度は、すべて、切り上げになってしまうようです
誤差の出ないような切捨てのデータ型はないのでしょうか。
0624デフォルトの名無しさん
2005/11/26(土) 21:44:220625デフォルトの名無しさん
2005/11/26(土) 21:51:530626デフォルトの名無しさん
2005/11/26(土) 21:55:330627デフォルトの名無しさん
2005/11/26(土) 22:02:55でも、
char fsf[20];
wsprintf(fsf,"%d",(int)floor(2.3*7000));
MessageBox(hwnd,fsf,"",0);
これでは、16099になるので、誤差が解消されないようなのですが。
0628デフォルトの名無しさん
2005/11/26(土) 22:05:25すべての計算でそうなりたいのです。
>>626さんありがとうございます。
vbaでのdecimal のような型がないのかなとおもいまして。
0629デフォルトの名無しさん
2005/11/26(土) 22:13:010630デフォルトの名無しさん
2005/11/26(土) 22:13:11(int) (x + 0.5)
を実行することです。ただし、この方法は負の数に対して期待した結果を得ることができないかもしれません。
0631デフォルトの名無しさん
2005/11/26(土) 22:13:280632デフォルトの名無しさん
2005/11/26(土) 22:15:070633デフォルトの名無しさん
2005/11/26(土) 22:15:46long long int lli1 = 100L;
long long int lli2 = 200L;
long long int lli3 = 300L;
printf("%lld %lld %lld\n", lli1, lli2, lli3);
これではだめなのでしょうか?
Visual Studio .NET 2003 で試してみると正しく表示されません。
ためしに
std::cout << lli1 << ' ' << lli2 << ' ' << lli3 << std::endl;
とすると正しく表示されます。
0634デフォルトの名無しさん
2005/11/26(土) 22:20:22プログラムって、独学でもいけますか?
自分文系なんですが。
0635デフォルトの名無しさん
2005/11/26(土) 22:24:53その手の質問はネット上にあふれてるから、調べてみると良い。
0636デフォルトの名無しさん
2005/11/26(土) 22:25:11ここのパラメータが32bitだからじゃないかな?
0637デフォルトの名無しさん
2005/11/26(土) 22:27:53unsigned long long l0 = 0;
unsigned long long l1 = 1;
unsigned long long l2 = 2;
printf("%llu, %llu, %llu\n", l0, l1, l2);
std::cout << l0 << ", " << l1 << ", " << l2 << std::endl;
結果
0, 0, 1
0, 1, 2
0638デフォルトの名無しさん
2005/11/26(土) 22:30:240639デフォルトの名無しさん
2005/11/26(土) 22:32:50↑大文字の [ I ]
0640デフォルトの名無しさん
2005/11/26(土) 22:38:24ll (えるえる) が ANSI 標準だと思っていました。
VC++ も ANSI 標準は使えるだろうとタカをくくってました。
0641デフォルトの名無しさん
2005/11/26(土) 22:39:400642デフォルトの名無しさん
2005/11/26(土) 22:41:23いくら何でもプリプロセッサでは無理かと。
0643デフォルトの名無しさん
2005/11/26(土) 23:20:290644デフォルトの名無しさん
2005/11/27(日) 11:26:38>>629さんありがとうございます。
どうしてか私のパソコンでは、long long で宣言してもint になってしまうようで・・・
long long = 2.3;でも中身は、2になってるのです。
>>630さんありがとうございます。
関数はないのですね、
>>631-632さんありがとうございます。
小数点以下第三位ぐらいまで出いいのです。
いろいろ調べていただいたこと本当にありがとうございます。
ので自分で関数を作って対処いたしました。
みなさま教えていただきましたこと、ほんとうにありがとうございます。
if(tanka=="") return 0;
int tekcha =0;
int icount = 0,hani = 0;
bool flag = false;
char *damy;
damy = (char *)malloc(strlen(tanka)+1);
for(int i = 0;i<strlen(tanka);i++){
if(tanka[i]=='.') {
flag = true;continue;
}
if(flag) hani++;
damy[icount++]=tanka[i];
}
damy[icount]='\0';
tekcha = atoi(damy);
free(damy);
return (int)(tekcha*suuryou)/pow(10,(hani));
0645デフォルトの名無しさん
2005/11/27(日) 13:00:57そりゃそうだ。long longは整数型だから2になって当然だ。
0646デフォルトの名無しさん
2005/11/27(日) 15:54:130647デフォルトの名無しさん
2005/11/27(日) 19:49:570648デフォルトの名無しさん
2005/11/27(日) 23:53:150649デフォルトの名無しさん
2005/11/28(月) 10:04:22当該プロジェクトでは一度も使われていないクラスを
探す事はできるでしょうか?
「使われていない」とは「インスタンスが生成されていない」
という意味です。
0650デフォルトの名無しさん
2005/11/28(月) 11:31:420651デフォルトの名無しさん
2005/11/28(月) 14:57:15VisualStudio.net 2003のC++でWebサービスを開発する場合、
「ASP.net Web サービス」と「ATL Server Web サービス」の2種類が
ありますが、パフォーマンスとかが違うものなのでしょうか?
それとも単純にmanagedなコードならASPの方、そうでなければATL、
というようなものなのでしょうか?
VC++6.0、ATL上で書かれたCOMのサーバをWEBサービス化することを
考えており、ATL Serverの方なら簡単に移植できるのかと思いきや、
見掛けも違うし、訳が分からない状態で困っています。
0652デフォルトの名無しさん
2005/11/28(月) 15:55:530653デフォルトの名無しさん
2005/11/28(月) 16:01:44土曜からウインドウズプログラミングを猫でもわかる〜さんのとこで勉強してるのですが、イントロダクションからつまづきました。サンプルをビルドしたところ、
myProg.hbrBackground =GetStockObject(WHITE_BRUSH);
が'HGDIOBJ'から'HBRUSH'に変換できません。'void*'から非'void'型への変換には明示的なキャストが必要ですってエラーがでます。
猫でも〜さんには解決方法が無くて普通に進んでしまい三日目にしてわからないのでお聞きしました。
VC++2005 Express Beta2を使っております。
よろしくお願いします。
0654ハクション大魔王
2005/11/28(月) 17:41:57本買えば?
0655デフォルトの名無しさん
2005/11/28(月) 18:57:22エラーだけ見て脊髄反射ですが、キャストだけが問題なら
myProg.hbrBackground =(HBRUSH)(GetStockObject(WHITE_BRUSH));
ってキャストすれば良いのでは?お行儀良くないですが。
0656デフォルトの名無しさん
2005/11/28(月) 19:01:15http://www.kumei.ne.jp/c_lang/setvc.htm
>(C言語に慣れている方には必要のないことなので読み飛ばしてください)
>エラーメッセージを読めばどこをどう直せばよいかすぐにわかると思います。
要するにエラーメッセージを読んでわからないやつは問題外ということだ
0657デフォルトの名無しさん
2005/11/28(月) 19:17:550658デフォルトの名無しさん
2005/11/28(月) 21:46:430659デフォルトの名無しさん
2005/11/28(月) 21:56:51ます。毎回中央に表示する方法はありますか?
0660デフォルトの名無しさん
2005/11/28(月) 22:10:030661デフォルトの名無しさん
2005/11/28(月) 22:14:290662デフォルトの名無しさん
2005/11/28(月) 23:00:180663デフォルトの名無しさん
2005/11/28(月) 23:18:139xでも平気か教えてほしい。
NT系では無視されるとあるから安心してNULLにできるが。
0664デフォルトの名無しさん
2005/11/28(月) 23:54:35hPrevInstance 真面目に処理してる香具師いる?
0665デフォルトの名無しさん
2005/11/29(火) 07:42:59無視。引数名も与えていない。
それにどうせWin16向けにはコンパイルできないと決めてかかっている。
0666デフォルトの名無しさん
2005/11/29(火) 21:22:04くだらない質問を受けるスレである以上
>>653見たいなのはさくっと>>655見たいに答えるだけでよくね?
そうしないと他のスレとの違いがなくなって単なる重複になっちゃうよ。
それが嫌ならレスしなきゃいいし
ってこれが出来ないやつが多いからグダグダになるんだけど。
0667デフォルトの名無しさん
2005/11/29(火) 21:40:24中途半端に希望を持たせるのはかわいそう
ダメなやつはダメとはっきり教えてあげないと
0668デフォルトの名無しさん
2005/11/30(水) 11:10:41wprintf(L"ABCあいう\n");
で日本語以降が表示できないのですが、
なにか設定とかあるのでしょうか?
0669デフォルトの名無しさん
2005/11/30(水) 11:25:06じゃ日本語つかえない環境だね
0670デフォルトの名無しさん
2005/11/30(水) 12:39:50Solaris/Linux/cygwin/Win32 console で
ポータブルに書くことってできますでしょうか?
0671デフォルトの名無しさん
2005/11/30(水) 13:10:11wait.tv_sec = 0; wait.tv_usec = 100000;
sleep(0, NULL, NULL, NULL, &wait);
はどう?
Win32 以外なら
usleep(100000);
でもいいと思うけど。
0672デフォルトの名無しさん
2005/11/30(水) 13:17:47システム時間見ながらループしてもいいんじゃないかな
0673デフォルトの名無しさん
2005/11/30(水) 17:39:32#include <locale>を書き、
main()の先頭にstd::locale::global(std::locale("japanese"));を書く。
0674デフォルトの名無しさん
2005/11/30(水) 22:49:25今、SystemParametersInfoのSPI_SETDESKWALLPAPERを使って、リソースに組み込んだBITMAPファイルを壁紙に設定しようと考えています。
しかし、SystemParametersInfoの引数がファイル名なので、それは無理なのでしょうか?もし、他の方法で、リソースのBITMAPを壁紙に設定する方法はありますでしょうか?
よろしくお願いします。
0675デフォルトの名無しさん
2005/11/30(水) 22:59:35諦めて一旦ファイルに書き出せ。
0676デフォルトの名無しさん
2005/11/30(水) 23:09:40ありがとうございます。やってみます!
0677デフォルトの名無しさん
2005/12/01(木) 01:41:10そんなツールが作りたいんですが…どうしても方法がわかりません
やりたいのはUSBの信号をMIDIInputとして入力をしたいです
USB側の信号の受け取りはさっくり出来たんですけど…
MIDIInputをプログラムで使うにはmidiInGetNumDevs()で列挙後
midiInOpenを使ってコールバックを仕掛けるみたいなので
midiInGetNumDevs()の候補になれば良さそうなんですけど、
この方法がどうやってもわかりません
いい方法がないでしょうか…
0678デフォルトの名無しさん
2005/12/01(木) 10:41:10遅くなりました。
ありがとうございます。
0679デフォルトの名無しさん
2005/12/01(木) 14:00:10どのあたりを調べればよいか教えてください。
0680デフォルトの名無しさん
2005/12/01(木) 14:13:360681デフォルトの名無しさん
2005/12/01(木) 14:46:32ありがとうございます
0682デフォルトの名無しさん
2005/12/05(月) 07:53:51Win32とWinCEのそれぞれのバイナリを区別する為にリソースのバージョン情報の一項目だけを切り替える、ということをしたいと思っています。
手書きで*.rcのVERSION節でOS定義定数(_WIN32など)を見てそれぞれの行を有効にするようにしたのですが、VERSION節自体を編集するとそれがなくなってしまいます。
なにかよい実現方法は無いでしょうか?
ヒントだけでもくれるとありがたいです。
0683デフォルトの名無しさん
2005/12/05(月) 12:13:470684デフォルトの名無しさん
2005/12/05(月) 18:34:38無理。
rc書き換えるな。
0685デフォルトの名無しさん
2005/12/05(月) 21:32:24おいスレ違いだぞ
0686デフォルトの名無しさん
2005/12/05(月) 21:33:05板違い
0687デフォルトの名無しさん
2005/12/05(月) 23:24:05DLLのプロジェクトから実行してデバッグしてるんだけど
ステップ実行すると必ず何回目かで固まる。しかもctrl+alt+delもきかない。
なにこのバグ
馬鹿マイクロソフト、さっさと直せばあか
0688デフォルトの名無しさん
2005/12/07(水) 21:35:26direct3Dで3Dモデルを描くところまでできたのですが
それをbitmapで保存する方法がわかりません。
どうがご教授お願いします。
0689デフォルトの名無しさん
2005/12/07(水) 22:10:570690デフォルトの名無しさん
2005/12/07(水) 22:51:35流石にそのネタはこっちかな
【C++】 DirectX初心者質問スレ Part7 【C++】
http://pc8.2ch.net/test/read.cgi/tech/1132216611/
0691デフォルトの名無しさん
2005/12/07(水) 23:02:06#define infinite_loop while(true)
#define die printf(">>689は死ね\n")
#define main int main()
#define begin {
#define end }
#define return_zero return 0
main
begin
infinite_loop
begin
die;
end
return_zero;
end
0692デフォルトの名無しさん
2005/12/08(木) 14:38:34SDIで、
左側にFormView、右側にListViewで、
Listのアイテムが選択されたらListViewエリアの下部分にFormViewを出すといったようなアプリをつくりたいんですが、
どのひょうにつくったらいいでしょうか?
新規作成で分割されたSDIをつくったら左側がTreeViewになっていてこまっています。(変更できないし^;)
おしえてくださいー
0693デフォルトの名無しさん
2005/12/08(木) 16:48:03TreeViewを検索してFormViewにおきかえる
0694デフォルトの名無しさん
2005/12/08(木) 18:12:54他のバージョンで作られたlibeay32.libがうまく動かないんですが
どうやったら動くようになるでしょうか?
libeay32.lib(b_print.obj) : error LNK2001: 外部シンボル "__ftol2" は未解決です
libeay32.lib(b_print.obj) : error LNK2001: 外部シンボル "__aulldvrm" は未解決です
0695デフォルトの名無しさん
2005/12/08(木) 21:27:46C++の勉強をしているのですが、以下のコードで、
'vector' : 定義されていない識別子です。
とコンパイルエラーが発生します。
何故でしょうか?
---------------------------------------
#include <vector>
#include <iostream>
void main(void)
{
vector<int> v1;
}
0696デフォルトの名無しさん
2005/12/08(木) 21:38:100697デフォルトの名無しさん
2005/12/08(木) 21:43:21VC6でlibをビルドする。
0699デフォルトの名無しさん
2005/12/09(金) 02:45:330700デフォルトの名無しさん
2005/12/09(金) 23:00:13ゲームを作っているんですけど、
vector<ZAKO01> vzako01;
ZAKO01 zako01;
vzako01.push_back(zako01);
このようなコードで
以下のようなエラーが出てしまいます。
d1 error LNK2019: 未解決の外部シンボル
"public: __thiscall ZAKO01::ZAKO01(class ZAKO01 const &)" (??0ZAKO01@@QAE@ABV0@@Z) が関数
"protected: void __thiscall std::vector<class ZAKO01,class std::allocator<class ZAKO01>
>::_Insert_n(class std::vector<class ZAKO01,class std::allocator<class ZAKO01> >::iterator,unsigned int,class ZAKO01 const &)"
(?_Insert_n@?$vector@VZAKO01@@V?$allocator@VZAKO01@@@std@@@std@@IAEXViterator@12@IABVZAKO01@@@Z) で参照されました。
d1 fatal error LNK1120: 外部参照 1 が未解決です。
可変配列って便利そうだったので挑戦してみたんですけど
まだ使うのは早過ぎたかなぁ。
どなたかよろしければ教えてください。
0701デフォルトの名無しさん
2005/12/09(金) 23:18:222行目「ZAKO01::ZAKO01(class ZAKO01 const &)」が未解決(1行目)と書いてあるのだから、
ようするにZAKO01のコピーコンストラクタを書いてみろ。
あと01なんてつけるな。きちんと考えろ。
0702デフォルトの名無しさん
2005/12/09(金) 23:27:29public:
ZAKO01(float arfX=0,float arfY=0):MOVOBJ("zako01.bmp",1,1,1,32,32){
obj.fX=arfX;
obj.fY=arfY;
fDeg=90;
fSpd=1;
}
ZAKO01(const ZAKO01&);
};
どうも
ZAKO01クラスはこんな感じなんですが・・・
コピーコンストラクタは
ZAKO01(const ZAKO01&);
じゃ駄目なんでしょうか。
すみません
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドと言う事で
自分でもよくわかりません。
C++難しいです。
普通の配列でもよかったんですけど 勉強になるかなと思ってvector使ってみたんです。
すみません01をつけたのは雑魚をいくつも作るつもりでまだ1匹目なので01
なのすけど名前をちゃんとつけましょうってことでしょうか?
0703デフォルトの名無しさん
2005/12/09(金) 23:35:37そういうことか わかりました。
コピーコンストラクタもちゃんと
{ }つけて処理書かないと駄目なんですね・・・
たぶん当たり前の事なんでしょうが、まだ勉強中だったので気付きませんでした。
自分はメンバ関数外に書く方法もあるみたいだけど
クラスの中でメンバ関数の処理も書いちゃってたのに
コピーコンストラクタの分だけ外に書く方式にしちゃってますね。
なのに外に書いてないから、おかしいわけですね。
ありがとうございました。
0704デフォルトの名無しさん
2005/12/09(金) 23:37:52public:
ZAKO01(float arfX=0,float arfY=0):MOVOBJ("zako01.bmp",1,1,1,32,32){
obj.fX=arfX;
obj.fY=arfY;
fDeg=90;
fSpd=1;
}
ZAKO01(const ZAKO01&):MOVOBJ("zako01.bmp",1,1,1,32,32){
};
};
ちなみにこうしたら動きました。
馬鹿な質問だったでしょうが、ヒントをもらえてうれしいです。
0705デフォルトの名無しさん
2005/12/09(金) 23:57:10ZAKO01(const ZAKO01&):MOVOBJ("zako01.bmp",1,1,1,32,32){
}; ←このセミコロン要らない。
0706デフォルトの名無しさん
2005/12/10(土) 00:05:11なんかついたまま動いてましたけど、気付きませんでした。
ありがとう。
取っときました。
0707デフォルトの名無しさん
2005/12/10(土) 00:25:38下手にコピーコンストラクタのカスみたいなものを書いていたために自動コピーが働かなかったようです。
コピーコンストラクタ丸ごと削除しても動きましたorz
0708デフォルトの名無しさん
2005/12/10(土) 01:00:02カスというかクラスの定義にコピコンの宣言だけ書いて定義してなかったんでしょ?
宣言してあったらそりゃリンカが探そうとするって。
0709デフォルトの名無しさん
2005/12/10(土) 23:42:32開発環境は Windows2000以降、VisualC++ .NET2003で、
.NET Frameworkは無しでお願いします。
0710デフォルトの名無しさん
2005/12/10(土) 23:48:190711デフォルトの名無しさん
2005/12/11(日) 00:13:16やぱ、WinSockですか・・・
WinSockでTCP/IPサーバは作ってますが、それとは別の方法さがしてるんです。
ぐぐってんだけど、探し方が悪くてよくわからん。
メールスロット、名前付きパイプ、OLE、DDE・・いろいろありそうで混乱してます。
やりたいのは、数十バイト程度の要求内容を溜め込めて、
順次取り出して、Windowsサービス内で処理させたいだけなんだけど・・・
0712デフォルトの名無しさん
2005/12/11(日) 03:38:390713デフォルトの名無しさん
2005/12/11(日) 03:39:400714デフォルトの名無しさん
2005/12/11(日) 03:40:180715デフォルトの名無しさん
2005/12/11(日) 23:53:31public:
PUCHAR buf;
//コンストラクタ
myclass(){
buf = new UCHAR[BUF_SIZE];
ZeroMemory(buf,BUF_SIZE);
}
//デストラクタ
~myclass(){
delete[]buf;
} };
こういう使い方ってまずいですか?
0716デフォルトの名無しさん
2005/12/11(日) 23:55:49それ自体は問題ない。
ただしコピーコンストラクタとoperator =()をきちんと実装するか、
あるいは非公開にするかのどちらかを行うこと。
0717デフォルトの名無しさん
2005/12/11(日) 23:55:54なぜまずいと思ったんだろ
0718デフォルトの名無しさん
2005/12/12(月) 00:12:13Visual C++で簡単なプログラムを書いてデバッグしようとすると
デバッグ開始→このプロジェクトは変更されています。ビルドしますか?
→はい
→ビルドエラーが発生しました。続行して、最後に成功したビルドを実行しますか?
→はい
→プログラム'〜〜〜.exe'を開始できません。指定されたファイルが見つかりません。
→OK
終了になるんですが、何がいけませんか?
0719デフォルトの名無しさん
2005/12/12(月) 00:16:34ビルドに成功していないのにデバッグできるわけないっしょ。
0720デフォルトの名無しさん
2005/12/12(月) 00:25:09>>717
どうもです。
C++勉強し始めたばっかりで、コンストラクタとかはじめて使ったもんで・・・。
0721718
2005/12/12(月) 00:37:21リンクしています...
MSVCRTD.lib(crtexe.obj) : error LNK2019: 未解決の外部シンボル _main が関数 _mainCRTStartup で参照されました。
Debug\pro1.exe : fatal error LNK1120: 外部参照 1 が未解決です。
ビルドログは "略" に保存されました。
pro1 - エラー 2、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
ビルドするとこうなります。
0722デフォルトの名無しさん
2005/12/12(月) 00:51:05Windowsアプリケーションを組もうとしてコンソールアプリケーション選んだでしょ。
0723718
2005/12/12(月) 00:56:25はい。一応教科書の通りにやったんですが。
0724デフォルトの名無しさん
2005/12/12(月) 01:19:10buf が NULL かどうかくらいチェックしとけ
0725デフォルトの名無しさん
2005/12/12(月) 01:21:08なんでnewでNULLチェックなんだよ。
nothrowバージョンでもなし。
0726デフォルトの名無しさん
2005/12/12(月) 01:24:280727デフォルトの名無しさん
2005/12/12(月) 01:36:48質問させてください。
BorlandのC++コンパイラを先日DLしてC言語を勉強しはじめたばかりなのですが、
C及びC++のリファレンスってどこに行けば見れるのでしょうか?
それともVisual C++を買うしかないのでしょうか?
ググってもさっぱり分からず難渋しております
どうか皆様がどこでリファレンスを参照しているのか教えてください
0728デフォルトの名無しさん
2005/12/12(月) 01:39:26参考書を購入して下さい。
0729デフォルトの名無しさん
2005/12/12(月) 01:51:51operator =() ッテナニ?
0730デフォルトの名無しさん
2005/12/12(月) 02:08:05きみのハードディスクにインストールされているよ
0731デフォルトの名無しさん
2005/12/12(月) 10:31:03localなマシン内なのに、わざわざRPCするのも、なんだかイマイチな気が
>>713-714
共有メモリに要求内容をいれて、Mutexで排他同期取るのを手作りしたとして・・
起動はどうする?
なんか、こいつは便利だぜっていうAPIは用意されてないんでしょうかね〜
0732デフォルトの名無しさん
2005/12/12(月) 11:14:50>起動はどうする?
CreateProcess()
0733デフォルトの名無しさん
2005/12/12(月) 11:37:500734デフォルトの名無しさん
2005/12/12(月) 13:47:09それだと、あたらしくプロセス・スレッドが生成さてしまうんでは?
それとも、すでに常駐しているサービスを指定して、イベント起動できるの?
>>733
名前付きパイプ、今調べてるけど、これも、メールスロットと同じで、
自分で同期取るタイプだよね。だから、Windowsサービスでは使えない方式では?
プロセス間通信したいだけでもWinSockでポート開いて、
アクセス制限とかリモートからのセキュリティかけてlocalhost通信するのが流儀なの?
いろいろ調べてみてると、RPC使うのが普通?
Microsoft以外のサービスでは、iPodServiceやMcAfeeがRPCに依存してるね。
でも、RPC、コーディングしたことなくてわからん、
IDL書いて、IDLコンパイラかまして、VC++にインポート?
う〜ん、なんだかハマッテきた・・
0735デフォルトの名無しさん
2005/12/12(月) 13:50:58COMっつーか、オートメーション?
サービスはあまり作ったことないから使えるか知らないが
0736デフォルトの名無しさん
2005/12/12(月) 15:43:52タブの幅はどうやって指定するのですか?
0737736自決しました
2005/12/12(月) 15:47:24私のことはもう、忘れてください・・・
0738デフォルトの名無しさん
2005/12/12(月) 17:23:32入門書読めば書いてある。
0739デフォルトの名無しさん
2005/12/12(月) 21:37:21サービスなんだろ。Mutexが存在し無かった時点で、
net start hogeserviceで起動を掛ければいい。
0740デフォルトの名無しさん
2005/12/12(月) 22:00:38サービスの常駐開始って意味の起動じゃなくて、
要求が入ってきたよ。って意味のイベント起動って意味
0741デフォルトの名無しさん
2005/12/12(月) 22:15:31>順次取り出して、Windowsサービス内で処理させたいだけなんだけど・・・
何?この「Windowsサービス」は、固有名(ServiceMainを使うプログラム)ではなく、
一般名(Windowsでサーバとして何かやるプログラム)なの?
0742デフォルトの名無しさん
2005/12/12(月) 22:16:200743デフォルトの名無しさん
2005/12/13(火) 00:43:31Borlandでコンパイルしてるのですが、.cppではうまくいくのに.cではうまく
いかなかったり、その逆もあるのですが。どういう事なんでしょうか?
0744デフォルトの名無しさん
2005/12/13(火) 01:01:44というかスレ違い。
0745デフォルトの名無しさん
2005/12/13(火) 08:59:40cpp か cc かで悩むことがある。
UNIX でプログラム書いてたときには .cc 使ってたけど、
最近 VC++ 使うようになって .cpp にした。
変わったところでは .c++ っていう拡張子使ってる人もいるらしい。
ヘッダファイルは .h .hh .hpp これまた悩む。
0746デフォルトの名無しさん
2005/12/13(火) 09:00:300747デフォルトの名無しさん
2005/12/13(火) 09:23:03�Uって機種依存文字だったと思うし。
0748デフォルトの名無しさん
2005/12/13(火) 10:00:540749デフォルトの名無しさん
2005/12/13(火) 11:46:300750デフォルトの名無しさん
2005/12/13(火) 12:34:570751デフォルトの名無しさん
2005/12/13(火) 13:06:24計算結果をダイアログに表示(グレーの部分)するにはどうすればいいのでしょうか?
現在はMessageBoxで表示しるのですが、これだと[OK]を押さなければならないので、不便です。
環境は WindowsXP 、VC++.net です
0752デフォルトの名無しさん
2005/12/13(火) 13:15:05SetWindowText()で、キャプション変えるのが一番簡単
0753デフォルトの名無しさん
2005/12/13(火) 14:45:32ダイアログの上には何も存在しないんだろうか
0754デフォルトの名無しさん
2005/12/13(火) 19:05:48h, cpp以外は不自然に感じるから使わない。
hとcppは、HeaderとC Plus Plusだと思うけど、
hhとかccとか何でそうなるのかわからん。
0755デフォルトの名無しさん
2005/12/13(火) 20:53:39けれど単独プロジェクト内でしか使わないヘッダは依然として.hを使っている。
0756デフォルトの名無しさん
2005/12/13(火) 20:57:380757デフォルトの名無しさん
2005/12/13(火) 22:06:270758デフォルトの名無しさん
2005/12/13(火) 22:15:250759デフォルトの名無しさん
2005/12/14(水) 03:04:35で確保したメモリに、メモリの後ろからデータを入れていくには
どうすればいいですか?
memcpy(str + (256- sizeof(moji)), &moji, sizeof(moji));
ではうまくいきません。。
環境はVisual Studio 6.0でXP SP2です。
0760デフォルトの名無しさん
2005/12/14(水) 05:23:450761デフォルトの名無しさん
2005/12/14(水) 11:18:46一般名(Windowsでサーバとして何かやるプログラム)の実装手法として
(ServiceMainを使うプログラム)という話で質問したわけでして・・
リモートからの接続無しのプロセス間通信時の
起動(発火って言うのが一般的?)する手段って何が一般的なのかが知識不足で
わからんものでして・・
Unix系のdaemon君だとSoketでUNIXドメインとか、IPCとか、パイプとかにあたるやつ
別途、サードパーティとかフリーソフトを入れないで使える手段でです。
>>742
CreateEvent,SendEvent調べてるとこ・・
見つかるサンプルはどれもGUI向けのものばかりで
0762デフォルトの名無しさん
2005/12/14(水) 12:32:11次来る時は日本語も勉強しておいて欲しいです
0763デフォルトの名無しさん
2005/12/14(水) 13:07:35MFCを使用して、15マイクロ秒間隔で、パラレルポートからデータを送信するプログラムを
作成したいと考えています。
Windowsプログラムに関して、あまり詳しくないので、
実現することが可能かどうかしりたく質問します。
1.ウインドウズアプリで 15マイクロ秒という短い間隔で、処理を呼び出すことが可能なのでしょうか?
TIMEイベントを使用してもイベントの発生時間の最小単位が ミリ秒なので不可でしょうか?
2. 15マイクロ秒で呼び出すことができない場合、
while(1)
{
現在の時間を取得
if( 15マイクロ秒かどうか )
{
データを送信する。
}
}
といった感じにループをまわしつづけて時間を毎ループ計測してデータを送信
するとったことは、可能でしょうか?
宜しくお願い致します。
0764デフォルトの名無しさん
2005/12/14(水) 13:20:08それぞれの画面領域の初期サイズの設定ってどうやったらいいすか?
CreateViewの際のCSize(100,100)とかだとなんかいまいちだめぽいんですが、
というのも、分割画面の一番下側のがなんか、異様にでかくて全部の領域をかくしちゃってる状態。。。
こいつ小さくしたいけど小さくならない。。。なぜぇ〜
0765デフォルトの名無しさん
2005/12/14(水) 13:39:36LONG t = timeGetTime();
while(timeGetTime() - t < 15)
;
//送信
#winmm.libをインポートしないとtimeGetTimeは使えない
0766デフォルトの名無しさん
2005/12/14(水) 13:48:54BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if(!m_wndSplit.CreateStatic(this, 2, 2) ||
!m_wndSplit.CreateView(0, 0, RUNTIME_CLASS(CMfcTestView)
, CSize(100, 100), pContext) ||
!m_wndSplit.CreateView(0, 1, RUNTIME_CLASS(CMfcTestView)
, CSize(100, 100), pContext) ||
!m_wndSplit.CreateView(1, 0, RUNTIME_CLASS(CMfcTestView)
, CSize(100, 100), pContext) ||
!m_wndSplit.CreateView(1, 1, RUNTIME_CLASS(CMfcTestView)
, CSize(100, 100), pContext)){
return FALSE ;
}
CView*pview ;
pview = (CView *)m_wndSplit.GetPane(0, 0) ;
SetActiveView(pview) ;
return TRUE ;
}
>全部の領域をかくしちゃってる状態
ならなかったけど
0767364
2005/12/14(水) 14:08:50GetGetPane(0,0)
がだめっぽいのかなぁ〜
すごい変な風に分割してるので、ちょっと、そこらへんいじってみます
あんがと!
0768デフォルトの名無しさん
2005/12/14(水) 14:27:42if( !m_wndSplitter1.CreateStatic( this, 2, 1 ) )
return FALSE;
if( !m_wndSplitter2.CreateStatic( &m_wndSplitter1, 1, 2, WS_CHILD|WS_VISIBLE, m_wndSplitter1.IdFromRowCol( 0, 0 ) ) )
return FALSE;
if( !m_wndSplitter2.CreateView( 0, 0, RUNTIME_CLASS( CTest1View ), CSize( 400, 600 ), pContext ) )
return FALSE;
if( !m_wndSplitter3.CreateStatic( &m_wndSplitter2, 2, 1, WS_CHILD|WS_VISIBLE, m_wndSplitter2.IdFromRowCol( 0, 1 ) ) )
return FALSE;
if( !m_wndSplitter3.CreateView( 0, 0, RUNTIME_CLASS( CTest2View ), CSize( 0, 500 ), pContext ) )
return FALSE
if( !m_wndSplitter3.CreateView( 1, 0, RUNTIME_CLASS( CTest3View ), CSize( 0, 200 ), pContext ) )
return FALSE;
if( !m_wndSplitter1.CreateView( 1, 0, RUNTIME_CLASS( CTest4View ), CSize( 0, 200 ), pContext ) )
return FALSE;
CTest1Viewをちゃんと表示したいんだけど、どうGetPaneしたらええかな、、、
なにやっても、CTest4View がでかくなっちって他の分割領域にかぶさっちゃう。
(ぶんかつすぷりったーうごかせばちゃんとそれぞれの画面はみえるです。)
0769デフォルトの名無しさん
2005/12/14(水) 15:10:17CSplitterWnd::SetRowInfo()で、どうにかする。
0770デフォルトの名無しさん
2005/12/14(水) 15:41:400771デフォルトの名無しさん
2005/12/14(水) 19:01:53これはC/C++の標準ライブラリ関数ではなく処理系が独自に用意した関数ということでしょうか?
0772デフォルトの名無しさん
2005/12/14(水) 20:29:25それmsでしょ
質問はμsだったよ
0773デフォルトの名無しさん
2005/12/14(水) 20:44:570774デフォルトの名無しさん
2005/12/14(水) 21:41:21インラインアセンブラでRDTSC
0775デフォルトの名無しさん
2005/12/14(水) 21:57:16そういうこと。
0776デフォルトの名無しさん
2005/12/14(水) 22:24:430777デフォルトの名無しさん
2005/12/14(水) 22:25:01回答有難うございました。
0778デフォルトの名無しさん
2005/12/14(水) 22:31:12int main(void)
{
printf("Hello World!\n");
return 0;
}
と書いてビルドすると
------ ビルド開始: プロジェクト: pro1-7, 構成: Debug Win32 ------
コンパイルしています...
hello.c
c:\ー略ー\hello.c(1) : fatal error C1083: include ファイルを開けません。'sudio.h': No such file or directory
ビルドログは "file://c:\ー略ー" に保存されました。
pro1-7 - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
となります。エラーって何ですか?
0779デフォルトの名無しさん
2005/12/14(水) 22:33:27http://dic.yahoo.co.jp/bin/dsearch?p=%A5%A8%A5%E9%A1%BC&stype=1&dtype=0
http://dic.yahoo.co.jp/bin/dsearch?p=%A4%A8%A4%E9%A1%BC&dname=5ss&stype=1&dtype=5
0780778
2005/12/14(水) 22:35:52なんでエラーになりますか?(どこがいけないですか)
0781デフォルトの名無しさん
2005/12/14(水) 22:39:360782デフォルトの名無しさん
2005/12/14(水) 22:40:52'sudio.h': No such file or directory
(そんなファイルorフォルダ無いっすよ)
0783デフォルトの名無しさん
2005/12/14(水) 22:46:080784デフォルトの名無しさん
2005/12/14(水) 22:49:10お前が読んでいる本・サイトなどにあるプログラムとお前が書いたプログラムを見比べろ。
0785778
2005/12/14(水) 22:56:11入門書につべこべ言わずこれそのまま書いてビルドしてみろ
と書いてあったのでやってみました。
sudio.hがないということは代わりにどんなファイルを指定するべきなんですか?
0786デフォルトの名無しさん
2005/12/14(水) 23:12:39×sudio.h
○stdio.h
0787デフォルトの名無しさん
2005/12/14(水) 23:14:140788778
2005/12/14(水) 23:14:490789デフォルトの名無しさん
2005/12/14(水) 23:32:32こういったファイル名称を字面で覚えるとミスるので
スタンダードIOドットエイチ
STanDardIO.H
と、覚えましょう。
0790デフォルトの名無しさん
2005/12/15(木) 01:31:12ないのですか?
0791デフォルトの名無しさん
2005/12/15(木) 01:33:40メンバの順番を変えても構造体のサイズが変わるかもしれない。
まぁ、よく判らんのだったら気にするなと。
0792デフォルトの名無しさん
2005/12/15(木) 01:35:21char baka[5];
long shine;
};
sizeof(struct aho) の値が 9 じゃなくて 10 になるって話?
0793デフォルトの名無しさん
2005/12/15(木) 01:36:570794デフォルトの名無しさん
2005/12/15(木) 01:38:06計算上のサイズとはなんですか?
メンバー変数のサイズの合計は必ずしも構造体のサイズではないですよ。
コンパイラーまたはそのオプションによって、メンバー変数はある一定の
バウンダリー上に配置されます。つまり、メンバー変数とメンバー変数の
間に隙間ができます。
構造体のサイズとはこれらの隙間も足した合計です。
0795デフォルトの名無しさん
2005/12/15(木) 01:46:268/16bitなら10
32bitなら12
64bitなら16
0796デフォルトの名無しさん
2005/12/15(木) 01:53:56だから、デフォルト設定だと10
0797デフォルトの名無しさん
2005/12/15(木) 01:56:37思い込み乙。
0798790です
2005/12/15(木) 02:24:33言いたいことは>>792さんの言うとおりです。
少し質問を変えますが、例えば
typedef struct aho_{
char baka[5];
long shine;
}aho, *paho;
でahoのサイズが10になるとして
paho AHO= new paho;
char boke[11] = "0123456789";
memcpy(AHO, &boke, sizeof(aho));
とした場合アクセスできないデータがでてくるのですか?
0799デフォルトの名無しさん
2005/12/15(木) 02:28:44アクセスできないデータとは?
0800790です
2005/12/15(木) 02:29:41paho AHO= new aho;
ですね。
ネットワーク関係のプログラムの勉強をしていて、受信バッファを構造体にコピーして扱いたい
と思っています。
0801790です
2005/12/15(木) 02:35:47構造体のサイズが10でメンバのサイズが9ってことは、
for(int i; i<5; i++){
printf("02%x\n", aho->baka[i]);
}
printf("08%x", aho->shine);
で全てのメンバを16進数で出力したとしても、どれか1つ出力されないのかと
思ったのですが。。。
0802デフォルトの名無しさん
2005/12/15(木) 02:39:16これでアクセス可能
0803デフォルトの名無しさん
2005/12/15(木) 02:42:52はいはい、なんとなく趣旨がわかりました。
電文に構造体をコピーしたいということですね。
それなら、構造体のコピーは×です。
電文のレイアウトに
char baka[5];
long shine;
とあって、そこにpahoをmemcpyでコピーするのは駄目です。
bakaとshineをそれぞれ別にコピーすべきです。
あと、longの場合はネットワークバイトオーダーというものがありますから、
それも意識する必要があります。(電文仕様による)これにも注意してください。
ネットワークバイトオーダー↓
http://wisdom.sakura.ne.jp/system/winapi/winsock/winSock4.html
0804デフォルトの名無しさん
2005/12/15(木) 02:47:31>801の例だと、メンバの隙間は出力されないからそういう意味では、「一つ出力されない」と言える。
実際に構造体がどう配置されるか自分で調べることができないレベルならば、
構造体に直接コピーするのではなく1バイトずつきちんとコピーした方がいいよ。
ネットワークを介した両端で同じように構造体にパックされることが保証されているなら
中身を気にせず構造体のまま送るのも手ではあるけど。
0805デフォルトの名無しさん
2005/12/15(木) 02:48:080806803
2005/12/15(木) 02:52:39構造体のコピーでよい場合もあります。電文の仕様にあってればの話ですけど。
0807デフォルトの名無しさん
2005/12/15(木) 02:53:30(環境が特定できるなら)全て予測可能だし、必要ならコンパイル時に確定できる。
0808デフォルトの名無しさん
2005/12/15(木) 02:54:47http://nais.to/~yto/clog/2001-07-12-3.html
http://www.kab-studio.biz/Programing/PragmaTwice/Main/234.html
http://www.kab-studio.biz/Programing/PragmaTwice/Main/235.html
0809デフォルトの名無しさん
2005/12/15(木) 02:57:18コンパイルオプションの構造体メンバーのアラインメントが何バイトになっているか
で、わかりますけど、このオプションを変更すると動作が不定になってしまう
コードはどうかと思います。
0810790です
2005/12/15(木) 02:58:16頑張って勉強してみます!
0811デフォルトの名無しさん
2005/12/15(木) 02:59:060812デフォルトの名無しさん
2005/12/15(木) 03:00:060813デフォルトの名無しさん
2005/12/15(木) 03:03:37#pragma pack()
socketのソース見てみれ
0814デフォルトの名無しさん
2005/12/15(木) 09:53:12ウインドウをもうひとつ追加するのって
どうやったらいい?
0815デフォルトの名無しさん
2005/12/15(木) 10:00:520816デフォルトの名無しさん
2005/12/15(木) 10:19:38後から追加でホスィです
0817デフォルトの名無しさん
2005/12/15(木) 11:27:45誰も止めない
0818デフォルトの名無しさん
2005/12/15(木) 20:03:010819デフォルトの名無しさん
2005/12/15(木) 20:17:56それ以前の問題として日本語にエラーが出てるよ。
0820デフォルトの名無しさん
2005/12/15(木) 23:13:42デバッグ->開始 とやると最後まで動きますが、
デバッグ->デバッグなしで開始 とやると途中でエラーがでてしまいます(・・`
同じプログラムなのにこうなる原因は何なんでしょうか?
0821デフォルトの名無しさん
2005/12/16(金) 00:04:56おまいさんのコーディングが悪い。
つーか、エラーが発生してるのなら、その内容くらい書こうね。
0822デフォルトの名無しさん
2005/12/16(金) 09:37:40どう違うのでしょうか?
0823デフォルトの名無しさん
2005/12/16(金) 11:34:14LはlongのLだ
ロングポインタか、ポインタかの違いだ
0824デフォルトの名無しさん
2005/12/16(金) 13:26:08レスありがとうございます。
すみません。ロングポインタとポインタの違いがわからないです。。。
0825デフォルトの名無しさん
2005/12/16(金) 13:40:07FAR ポインタと NEAR ポインタの違いなら分かる(笑
0826デフォルトの名無しさん
2005/12/16(金) 15:03:58マウスとタッチパッドを接続)し、それらの機器別に
マウスのイベントをフックするといった芸当はできるの
でしょうか?
0827デフォルトの名無しさん
2005/12/16(金) 15:30:17printf("%f\n",Is[j]);
でIsに格納した値を出力しようとして
コンパイル時にエラーも警告も出ないのに
1.#QNANO
と出力されてしまいます。
↑これって何なんでしょう??
Isはdouble型です。
0829826
2005/12/16(金) 15:45:13グローバルフックとかを頑張って調べてみたんですが、
どうもマウスの判別といった事ができるわけではないようで・・・。
0830デフォルトの名無しさん
2005/12/16(金) 15:46:40計算結果が数値じゃないとそう出力される。
例えばその値は0割り算の結果だとか、その値の入っているはずのメモリが破壊されたか、scanf()系で間違って"%f"で入力しようとしたか、その辺だろう。
0831デフォルトの名無しさん
2005/12/16(金) 16:05:25上のListView(レポートタイプ)部分で選択されたアイテムの内容を
下のFormViewに配置されているEditBox等に表示させたいのですが、
ListViewのアイテムが選択されたこと&データをどうやってFormViewにわたせばいいでしょうか。。。
0832827
2005/12/16(金) 16:05:25レスありがとうございます!
そうですか…scanf()系は使ってないので
式がどこかおかしいっぽいですね。
sqrt()
でルートの中がマイナスになっても
そう出力されるでしょうか??
0833デフォルトの名無しさん
2005/12/16(金) 16:15:52ロングポインタとただのポインタの違いはfarポインタとnearポインタと同じ。
>>824
そんでこれらの違いは昔の名残で、今のVC++にロング・FARポインタは存在しない。
0834デフォルトの名無しさん
2005/12/16(金) 16:34:14>ルートの中がマイナス
そりゃぁ、計算不可能な値が返されるだろうねぇ。
0835827
2005/12/16(金) 17:32:37じゃあそこの式がおかしいっぽいですね。
もう一度洗い直してみます。
ご指導ありがとうございました!
0836デフォルトの名無しさん
2005/12/16(金) 18:23:42ListViewのアイテムが選択された時の処理で直接EditBoxに書いてもいいし
FormViewに処理を作ってそれを呼んでもいい
0837デフォルトの名無しさん
2005/12/16(金) 19:52:27はじめの状態に戻すにはどうすればいいですか?
0838デフォルトの名無しさん
2005/12/17(土) 00:12:01Visual C++.NETは、Visual C++ プラス .NET Framework
というふうに単純に考えていいんですか?
0839デフォルトの名無しさん
2005/12/17(土) 06:16:120840デフォルトの名無しさん
2005/12/17(土) 09:29:53再インストール
0841デフォルトの名無しさん
2005/12/17(土) 12:30:31できるウインドウってなんていうのがあるの?
0842デフォルトの名無しさん
2005/12/17(土) 13:17:25多分、お前がやりたいのは、ダイアログ
きっとそう
0843デフォルトの名無しさん
2005/12/17(土) 13:42:55別にウィンドウを作りたいと解釈してみる
SDI -> ウィンドウが1つしかない
MDI -> 親ウィンドウの中にウィンドウが入ってしまう
マルチインスタンス -> ウィンドウが複数ある(SDIを複数起動)
0844デフォルトの名無しさん
2005/12/17(土) 13:56:43そのアプリのウインドウの数とは関係ないよ
0845デフォルトの名無しさん
2005/12/17(土) 13:57:44SDIはドキュメントひとつにビューひとつ
0846デフォルトの名無しさん
2005/12/17(土) 21:09:28Visual C++ .Netは.Netをアピールするため、
Visual C++の特定のバージョンの製品名に.Netをつけただけ。
0847デフォルトの名無しさん
2005/12/17(土) 23:05:45結構長いソースを読む時に苦労しているので・・・
0848デフォルトの名無しさん
2005/12/18(日) 03:34:57ttp://docs.sun.com/source/806-4836/lint.html
あとVC6もProfessionalとかEnterpriseならアナライザがあったと思う
0849デフォルトの名無しさん
2005/12/18(日) 05:00:241>dxutmisc.obj : error LNK2019: 未解決の外部シンボル __imp__DialogBoxIndirectParamW@20 が関数 "void __cdecl DXUTDisplaySwitchingToREFWarning(void)" (?DXUTDisplaySwitchingToREFWarning@@YAXXZ) で参照されました。
なんて感じのが山ほど出てしまった。
VC2005 Express Editionではビルドできないの?
MFCないからダメとか?
0850デフォルトの名無しさん
2005/12/18(日) 05:12:42http://pc8.2ch.net/test/read.cgi/tech/1132216611/
http://pc8.2ch.net/test/read.cgi/tech/1103998649/
0851デフォルトの名無しさん
2005/12/18(日) 05:32:16必要なライブラリを探して追加して自己解決した。
スマンコ。
0852デフォルトの名無しさん
2005/12/19(月) 09:46:586.0 + .NET = Visual C++ .NET or 2005
ってことな訳ですね。
ドーモ(´∀`)アリガトー!!
0853デフォルトの名無しさん
2005/12/19(月) 11:38:11どうやったら閉じなくなるの?
0854デフォルトの名無しさん
2005/12/19(月) 11:47:20入力待ちにするか、無限ループにするか(ぉぃ)、コマンドプロンプトから実行するか、適当にどうぞ。
0855デフォルトの名無しさん
2005/12/19(月) 12:24:32そうだったのか。
0856デフォルトの名無しさん
2005/12/19(月) 12:27:100857デフォルトの名無しさん
2005/12/19(月) 16:36:13カウントが一致したときに割り込みをメッセージとしてアプリ側に
通知できる設定があるのですが,そのときに通知メッセージのメッセージ番号
を指定してやらなくてはなりません.
どうやってメッセージ番号がきまるのですか?任意の番号じゃだめなんですよね?
教えてください.
0858デフォルトの名無しさん
2005/12/19(月) 16:56:59WM_COMMAND で WPARAM とか LPARAM が考えられるけど
>某社のカウンタボード
某社に聞くかマニュアル嫁
0859857
2005/12/19(月) 17:26:33と定義していました.まねしてやってみたのですが動かず...
100ってのはなんでもいいんですかね.
0860デフォルトの名無しさん
2005/12/19(月) 17:45:10WM_USER〜はなんかで(忘れた)バッティングする事がある
0x0000 〜 WM_USER-1 システムで使われるメッセージ用
WM_USER(0x4000) 〜 WM_APP-1 それぞれのウィンドウクラスで使われる整数メッセージ用
WM_APP (0x8000) 〜 0xBFFF アプリケーションで使う整数メッセージ用
0xC000 〜 0xFFFF アプリケーションで使う文字列メッセージ用
0861デフォルトの名無しさん
2005/12/19(月) 17:51:32これに100または1024+100を設定すると
WM_USER+100で受け取れそう?
受け取れなければ別の原因と思われる。(文面からはどのウインドウを指定するとかないし)
0862857
2005/12/19(月) 18:11:56>>861
> これに100または1024+100を設定すると
この意味がよくわかりません.私が”通知できる設定”と書いたのは
ボードにそういう機能があるという意味です.
> WM_USER+100で受け取れそう?
ここもよくわからないのですが受け取れるか受け取れないかは
意図したとおりに動くか動かないかで判断すればよろしいのでしょうか?
また,メッセージを受け取るウィンドウは指定しています.
すいませんよろしくお願いします.
0863デフォルトの名無しさん
2005/12/19(月) 18:25:57プリプロセッサで判定に使えるマクロって何がありますか?
コンパイラの種類、バージョン、WIN32か否か、NT系か否か、などを知りたいです。
目的は、アセンブラを多用したLinux用のコマンドラインプログラムを
cygwinおよびWIN32コンソールに移植するに当たってのソースの共通化です。
インラインアセンブラは全く書式が違いますし、浮動小数点関係でも
isnan()辺りが違うので、判定したいと思っています。
0864デフォルトの名無しさん
2005/12/19(月) 18:31:24VCなら_MSC_VERがバージョン込みで
WindowsのバージョンはWINVERで定義されてる。
0865デフォルトの名無しさん
2005/12/19(月) 18:34:00__GNUC__がメジャーバージョン
__GNUC_MINOR__がマイナーバージョン
で定義されてる。
0866デフォルトの名無しさん
2005/12/19(月) 18:49:22#ifdef _CONSOLE //?
_MSC_VER 1310 //のときVC7.1
普通NT,2000,Xp と Win98 Meはexeを分けないので
必要ならランタイムに
GetVersion();
する。
0867デフォルトの名無しさん
2005/12/19(月) 19:00:56>> これに100または1024+100を設定すると
>この意味がよくわかりません.私が”通知できる設定”と書いたのは
>ボードにそういう機能があるという意味です.
ボードにメッセージ番号の数値を設定できると認識している。
で、設定した数値そのままが、ウインドウメッセージとして送られてくるなら
1124(WM_USER(0x400=1024)+100) をボードに設定すれば
アプリにはWM_USER+100のウインドウメッセージがくるはず。
ボードが設定された値+WM_USERの値をウインドウに送るような仕様なら
ボードに100を設定するとアプリにはWM_USER+100のウインドウメッセージがくるはず。
つまり、アプリがWM_USER+100を受け取るようにしていれば、
ボードに100を設定したときか、1124を設定したときのどちらかで、
アプリが受け取れるはず。
ボードに設定する数値は100でなくても、アプリに送られるメッセージが
0x400(1024)〜0x7fff(32767)の範囲内なら設定可能なはず、
>>860 の
>WM_USER(0x4000)
の0x4000はたぶん0x400の間違い。
0868デフォルトの名無しさん
2005/12/19(月) 19:09:21RegisterWindowMessageしたのや、WM_APP+Nを渡したら、エラーになった。
0869857
2005/12/19(月) 19:18:150870デフォルトの名無しさん
2005/12/20(火) 10:04:41普通にWin32 Dynamic-Link Libraryで作っていいのかな?
0871デフォルトの名無しさん
2005/12/20(火) 14:25:10なにがいけないのかおしえてください;;
#include <map>
CMap<int, int> map;
0872デフォルトの名無しさん
2005/12/20(火) 14:55:46map<int , int> hoge;
じゃね?
あと"using namespace std;"をやってないんだったら
"std::map"になるわな。
0873デフォルトの名無しさん
2005/12/20(火) 22:58:11stdafx.hをお忘れでなくって?って怒られたんですが
どのようにすればお気に召して頂けるのかしら?
fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
0874デフォルトの名無しさん
2005/12/20(火) 23:03:55cppファイルの先頭に#include "stdafx.h"を書く。
0875デフォルトの名無しさん
2005/12/20(火) 23:06:58そうするとC#ではdllimportを使うことになる。
もう1つ.Netクラスライブラリなどのプロジェクトを作る方法もあって、
こちらではC#のほうでは参照設定をするだけで使えるらしい。
0876デフォルトの名無しさん
2005/12/20(火) 23:09:04ファイル先頭にincludeするのが重要だったのね。。
2行目にしてたわ、アタシ。
EE先生、厳しすぎます。。。orz。。。
ちなみに、VC++環境を見分けるための識別子って何かしら?
#ifdef MSVC
#include "stdafx.h"
#endif
ってして於きたいの。
0877デフォルトの名無しさん
2005/12/20(火) 23:10:22でもおk
0879デフォルトの名無しさん
2005/12/20(火) 23:14:01/*ネカマキモイ*/
#endif
0880873
2005/12/20(火) 23:56:56試してみたのですが
fatal error C1020: unexpected #endif
って怒られちゃって悲しくなりました。
google先生に聞いてみても上手く解決できそうになかったので
cppファイルのプロパヘーから/Yuオプションを外して全て忘れることにします。
それでは、ごきげんよう。
0881デフォルトの名無しさん
2005/12/21(水) 00:48:500882デフォルトの名無しさん
2005/12/21(水) 02:14:27中覗いたら作成時のパス情報が入ってて鬱なんです
作成時の環境情報を入れないオプションって無いでしょうか?
0883デフォルトの名無しさん
2005/12/21(水) 07:55:170884882
2005/12/21(水) 08:34:340885デフォルトの名無しさん
2005/12/21(水) 09:12:15変換したいのだけどどうすりゃいい?
switchで$を押されたら\に変えるはできたけどその後の
数字012の後に00を追加する方法がわからない。
0886デフォルトの名無しさん
2005/12/21(水) 09:18:24Windowsプログラムは初めてなので分らないことが多くて
困っています。教えてください。
1.レジストリにXXX.regをコピーしたいのですが簡単な方法はありますか?
今のところ、
RegCreateKeyEx
RegSetValue
RegCloseKey
という流れで考えています。
もっと簡単な方法があれば教えてください。
2.上記処理でもCreateエラーやSetエラーなどを考えないと
いけませんか?
3.HDD中のファイルを移動したいのですが、
私の知識では、
ファイルを読み込んで、
クリエイトして、、、
となってしまいますが
簡単なAPIがあれば教えてください。
よろしくお願いします。
0887デフォルトの名無しさん
2005/12/21(水) 09:27:430888デフォルトの名無しさん
2005/12/21(水) 16:55:59上のListViewの内容を下のFormViewに表示させたいんだけど
ListViewのリストが選択されたら
FormViewのcppのほうでSetWindowTextしようとおもったんだけど
ウインドウハンドルが空っぽでセットすることができないんですが、どうしたらいいでしょう
0889デフォルトの名無しさん
2005/12/21(水) 18:01:460890デフォルトの名無しさん
2005/12/21(水) 19:30:46VC++2005Express Edition のIDEでビルドした後、
指定したファイルを自動的に別の場所にコピーするにはどうすればいいのでしょうか?
makefile 書いてコマンドラインからとか、
バッチファイル作れってのは無しの方向でお願いします。
0891デフォルトの名無しさん
2005/12/21(水) 19:43:48リンカの出力ファイルで設定するか、ビルドイベントのビルド後のイベントでも
なんかできそうだけど2005はしらない
0892デフォルトの名無しさん
2005/12/21(水) 19:52:460893デフォルトの名無しさん
2005/12/21(水) 20:27:27でけました。
ありがとうございます。
0894デフォルトの名無しさん
2005/12/22(木) 00:21:27があるんですが、VC++にはこういうコマンドってあるんでしょうか。
0895デフォルトの名無しさん
2005/12/22(木) 01:42:24コンパイラとリンカのオプションをいじってそもそもそういった情報を着けないようにすれば良いと思う。
コンパイラオプションではデバッグ情報の形式とかリンカオプションのデバッグ情報の生成とか。
別にビルドの構成を作ったほうが良いと思う。
0896デフォルトの名無しさん
2005/12/22(木) 01:59:15gccのstripつかう
0897デフォルトの名無しさん
2005/12/22(木) 08:54:490898デフォルトの名無しさん
2005/12/22(木) 10:34:28http://www.mtakahashi.com/
ここよく使ってたんだけど最近つながらない。
移転とか閉鎖?等の事情知ってるかたいたら教えてください。
0899デフォルトの名無しさん
2005/12/22(木) 11:25:38visual C++ 6.0でインターネットのHPを表示するソフトをつくりたいのですが
条件が日付によって表示するHPを変えるというものです
要は、365日(閏年で366日分)毎日ちがうHPを表示するものを組めと言われたのですが
IEと連動させることすらできません
時間取得で日付判定までは作ったのですが、、、
WEBから情報取得の方法を教えていただけませんか?
0900デフォルトの名無しさん
2005/12/22(木) 12:04:40先ずこれを解説してください。インターネットのヒットポイントですか?
0901デフォルトの名無しさん
2005/12/22(木) 12:31:540902デフォルトの名無しさん
2005/12/22(木) 12:55:02ShellExecute(hWnd, "print", "foo.txt", NULL, NULL, SW_HIDE);
しても印刷ダイアログが開いてしまうわけだが、確認なしに印刷させる方法ってないもんかな。
0903デフォルトの名無しさん
2005/12/22(木) 15:24:49ListViewから、FormViewにあるEditBoxのウィンドウハンドルってどうやったら取得できますか?
GetDlgItemしても、hWndが空っぽっていわれるし
0904デフォルトの名無しさん
2005/12/22(木) 16:41:060905デフォルトの名無しさん
2005/12/22(木) 17:04:380906デフォルトの名無しさん
2005/12/22(木) 17:05:32ListView.GetParent()をCSplitterWndにキャスト
split->GetPane()をFormViewに(ry
DlgItem
キャストがいやならメンバー変数にデモして
0907デフォルトの名無しさん
2005/12/23(金) 13:28:29void main(void)
{
souwa(10);
}
int souwa(int n)
{
if(n==1)
return(1);
else
return (n+ souwa(n-1));
}
渡した数の総和を出すのだけど。
n+souwa(n-1)はn+9が先にされてるの?
それとも、またsouwa(9)が先にされてるの?
処理の動き方がわからないので教えてください。
0908デフォルトの名無しさん
2005/12/23(金) 13:48:570909デフォルトの名無しさん
2005/12/23(金) 15:02:00return (2 + souwa(2 - 1))となるが、この部分はsouwa(2 - 1)が先に処理される。souwa(2 - 1)の場合、単純に1が帰る。
よって上式はreturn (2 + 1)となってreturnする。
するとさらに呼び出し元はreturn(4 + 3)となる。
ということで
1+2+3+4+..10となる
0910デフォルトの名無しさん
2005/12/23(金) 16:05:32FILE *fout;
int gyou;. /*行数のカウント*/
.
.
.
fputc(gyou,fout);
のようにして、行数をファイルに整数で出力したいのですが、asciiコードに対応した文字でファイルに出力されてしまいます。
gyouに入っている整数そのままをfputcで出力するにはどうすればいいでしょうか?
fprintfは使ってはいけないとのことです。
0911デフォルトの名無しさん
2005/12/23(金) 16:20:00sprintf()などで文字列にしてからfputc()をループで回してはダメ?
つーか、fputc()一発じゃ無理だと思うけど。
#行数が高々一桁で表せると言う前提があるなら話は別だが。
0912デフォルトの名無しさん
2005/12/24(土) 07:54:03バイナリエディタで見るとNULLばっかりで無駄なところが多そうなんだけど、
その部分を削ると動かなくなる・・・
0913デフォルトの名無しさん
2005/12/24(土) 09:04:45リンク->入力->すべての既存のライブラリの無視を「はい」
にすると、2kbくらいになる。
0914デフォルトの名無しさん
2005/12/24(土) 17:26:22fputc で普通はバイナリデータが書き込まれるよ。
int gyou には本当にバイナリのデータが入ってる?
書き込む前にgyouが対応するaciiコードに変換されているのでは?
fputcを疑う前に他のコードを調べた方がいい。
例えば下の例
100に対応するデータ0x64が一個だけファイルに書き込まれたのがバイナリエディタで確認できる。
つまりfputcで全然問題なくバイナリデータは書き込まれるってわけ
#include <stdio.h>
FILE *fp;
char ofname[100] = "output.dat";
void main(){
if(!(fp=fopen(ofname,"w")))// 新規に作成
{
printf(" Can't open outputdata file -- so program quitting \n ");
return ;
}
printf("write data to %s\n",ofname);
int c;
c= 100;
fputc(c,fp);
printf(" Now write data =%d to output file %s\n",c,ofname);
fclose(fp);
}
0915デフォルトの名無しさん
2005/12/24(土) 17:45:06やっぱりそれ以上は小さくならないんですね。
もし仮にuser32.dll が提供しているメッセージボックスのAPI関数と同じようなものを自分で書くことが
出来たらもっと小さなサイズでメッセージボックスを書けるのですか?
0916デフォルトの名無しさん
2005/12/24(土) 23:23:56いや、かえってサイズが大きくなるだろう。
メッセージボックスだけでもそれなりの量のコードになると思う。
0917デフォルトの名無しさん
2005/12/25(日) 04:23:450918デフォルトの名無しさん
2005/12/25(日) 09:53:470919デフォルトの名無しさん
2005/12/25(日) 14:04:13VS6.0+PlatformSDK+DX9SDK(Oct2004)の環境なんですが、DX9SDK付属のDXUTをビルド
しようとするとやれ何とかが定義されていないだの予期せぬEOFがでたのなんだのと
まったくビルドできません。取り敢えず検索パスは設定してるんですが…
他にも何か足らんのでしょうか?
0920デフォルトの名無しさん
2005/12/25(日) 14:06:040921デフォルトの名無しさん
2005/12/25(日) 14:15:190922デフォルトの名無しさん
2005/12/25(日) 14:17:49DXUTがビルドできない件をしらべるとよくそう言われてるようで…
真面目に買い換えないと駄目か…
0923デフォルトの名無しさん
2005/12/25(日) 18:23:21ttp://pc8.2ch.net/test/read.cgi/tech/1067396098/391-395
を見ること
391の環境:
Platform SDK (February 2003)
DirectX SDK (Summer 2003)
Processor Pack (SP5用のからファイル抽出して利用)
DirectXは 2003 Summerまでじゃねーか?
0924910
2005/12/25(日) 20:47:12c= 49;を代入してみたところ、しっかり整数'1'出力されました。
これを基にしてやってみます。どうもありがとうございました。
0926デフォルトの名無しさん
2005/12/25(日) 23:46:32買い換えなくともとりあえずExpress Editionでなんとかならないか?
0928デフォルトの名無しさん
2005/12/26(月) 00:17:26http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
DirectXSDKはVC6はOct2004までで良かった希ガス。
0929デフォルトの名無しさん
2005/12/26(月) 00:50:20次のようにMFCのCStringをreturnするケースですが、
//呼び出される関数
CString GetHogeHoge()
{
CString str;
str = _T("hogehoge");
return str;
}
//呼び出す関数
void hoge()
{
CString buf;
buf = GetHogeHoge();
//bufを使った処理
}
GetHogeHogeの変数strってローカルなのに、それをreturnして、
呼び出しもとで使うって何か気持ち悪いのですが、これって、
C++の言語仕様的に何かをやってるのでしょうか?
同じことcharの配列でやっちまうとNGですよね?
0930919
2005/12/26(月) 00:59:03今入ってるPSDKのバージョンがわからんので環境再構築してみる
0931デフォルトの名無しさん
2005/12/26(月) 01:02:12returnそれ自体に、戻り型のオブジェクトを構築する効果がある。
0932デフォルトの名無しさん
2005/12/26(月) 01:17:33そういった処理で何度コンストラクタ・デストラクタが呼ばれるか
知らないとCに比べてとんでもなく遅いプログラムになる。
0933929
2005/12/26(月) 02:04:49呼ばれる回数が多い場合は戻り値ではなく、引数にポインタを使う様にしてみます。
そう言う場合はCStringではなくて、LPTSTRがいいのでしょうね。
0934デフォルトの名無しさん
2005/12/26(月) 02:24:09この話でCとスピードを比べるのはお門違い
>>933
ポインタのサイズは CString でも LPTSTR(char*) でも同じだよ
値渡し ポインタ渡し 参照渡し コピーコンストラクタ、この辺りを勉強したらいいよ
0935デフォルトの名無しさん
2005/12/26(月) 03:56:23{
CStringData* pSrcData = strSrc.GetData();
CStringData* pNewData = CloneData( pSrcData );
Attach( pNewData );
}
static CStringData* __cdecl CloneData( CStringData* pData )
{
CStringData* pNewData = NULL;
IAtlStringMgr* pNewStringMgr = pData->pStringMgr->Clone();
if( !pData->IsLocked() && (pNewStringMgr == pData->pStringMgr) )
{
pNewData = pData;
pNewData->AddRef();
}
else
{
pNewData = pNewStringMgr->Allocate( pData->nDataLength, sizeof( XCHAR ) );
if( pNewData == NULL )
{
ThrowMemoryException();
}
pNewData->nDataLength = pData->nDataLength;
CopyChars( PXSTR( pNewData->data() ), PCXSTR( pData->data() ), pData->nDataLength+1 ); // Copy '\0'
}
return( pNewData );
}
この辺が呼ばれるのか? 通常は多分、ポインタのコピーと参照回数の更新だけっぽい
>buf = GetHogeHoge();
速度にこだわる必要がなければ、これでもいいんじゃねーの? 見やすいし
まぁ、初心者なら色々やってみるのもいいと思う。
0936デフォルトの名無しさん
2005/12/26(月) 09:19:51メモリ管理が楽になるようにCStringなどを使っているのにそんなんでLPTSTR使うなんておいおい。
(LPCTSTRなら話は別だが)
0937919
2005/12/26(月) 11:20:14サンデープログラマだった事もあり、今までUnicodeと縁が無かったのでいきなり躓いてます。
VS6.0でUnicodeを使う場合、”プロジェクトの設定”→”<C/C++>タブ”を選択し、
プリプロセッサの定義で_MBCSを削除して、替わりに_UNICODEを入れたんですが、
ビルドしようとするとまたUnicodeにしると怒られます。
Unicode使う場合の設定を教えて下さい。 orz コノトオリ
0938デフォルトの名無しさん
2005/12/26(月) 11:44:12ん〜やっぱわからないっす〜
void CTestListView::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
CCardInformationView View;
View.DisplayCardInformation( cardinfo );
}
0939デフォルトの名無しさん
2005/12/26(月) 11:47:58ん〜やっぱわからないっす〜
void CTestListView::OnClick(NMHDR* pNMHDR, LRESULT* pResult)
{
CTestFormView FormView;
FormView.SetData( "aaa" );
}
void CTestFormView ::DisplayCardInformation( CString str )
{
このstrをこのFormViewにあるEditBoxにセットしたいんですけど
どないしたら〜ええんでそ。。。
ここでふつうにSetWindowTextやっても、Wndがnullでつ
}
0940デフォルトの名無しさん
2005/12/26(月) 12:07:21>>906
> GetParent()をCSplitterWndにキャスト
人の話を全然聞いていないだろ。
0941デフォルトの名無しさん
2005/12/26(月) 13:03:37いや、それしてもできんとです。。。
画面を複雑に6分割とかしてるから
GwtPaneがうまくいってないだけなのかなぁ。。。
0942デフォルトの名無しさん
2005/12/26(月) 13:05:30「Webフォーム」カテゴリにある「ボタン」「ラベル」と
「HTML」カテゴリにあるこれらはどう違うのですか?
0943デフォルトの名無しさん
2005/12/26(月) 14:03:54とりあえず、
>GetParent()をCSplitterWndにキャスト
>GetPane()をFormViewに
に、してみた場合のコード見せてよ
0944デフォルトの名無しさん
2005/12/26(月) 17:21:34#define MYNAME vipper
#define macro_to_string(macro) #macro
std::cout << macro_to_string(MYNAME);
で、vipper って表示されるとうれしいんだけど・・・
0945デフォルトの名無しさん
2005/12/26(月) 17:23:37「#演算子」について俺は間違った理解をしている orz
0946デフォルトの名無しさん
2005/12/26(月) 17:24:48C言語の仕様上の理由で二重にマクロを挟まないといけない。
#define MYNAME vipper
#define TT(macro) #macro
#define macro_to_string(macro) TT(macro)
0947デフォルトの名無しさん
2005/12/26(月) 17:37:01size = fread(data, 1, 128, imgfp );
printf("%d byte読み込みました。\n", size);
でバイナリファイルを読み込みしようとしてるのですが、
毎回size = 0となってしまっています。
ファイルはちゃんと開けている保障はあるのですが、何が原因と考えられますでしょうか?
0948デフォルトの名無しさん
2005/12/26(月) 17:37:34何でこうなるのか、プリプロセッサになった気分で考えてみたけど、
頭がこんがらがってきて分からなくなった。
0949デフォルトの名無しさん
2005/12/26(月) 17:41:50ファイルを開くところからソースを晒せ。
0950デフォルトの名無しさん
2005/12/26(月) 17:50:35はい。。
strcpy(imgfilename, "test.bmp");
if((imgfp = fopen(imgfilename, "rb")) == NULL){
printf("ファイルオープンエラー\n");
return;
}
char data[256];
int size, i;
size = fread(data, 1, 128, imgfp );
printf("%d byte読み込みました。\n", size);
for(i=0; i<size; ++i) /* 実際に読み込めた分だけ繰り返す */
{
printf( "%d", data[i] ); /* 10進整数として表示 */
}
printf("\n");
fclose(imgfp);
よろしくお願いします。
0951デフォルトの名無しさん
2005/12/26(月) 17:50:36文字列化演算子 (#) は引数を展開することは出来ない。
なので、さらにマクロの引数にすることで強制的に展開させるのが>>946のコード
......とは言ってもこんな腐った技法を覚えるくらいなら
素直にboostを導入して、BOOST_PP_STRINGIZEを使いましょうとなるんですけどね
0952デフォルトの名無しさん
2005/12/26(月) 17:55:520953デフォルトの名無しさん
2005/12/26(月) 19:48:12feof()とferror()でのチェック結果は?
と書き逃げ
0954デフォルトの名無しさん
2005/12/26(月) 21:30:20もしかして910?オラ914だ
今回のコードはうちのVC++では問題なく動いたし、BCC5.5.1でも問題ない。
#include <stdio.h>
#include <string.h>
FILE *imgfp;
char imgfilename[256];
void main(){
>>950のコード
}
とやっただけだよ、またどっか全然関係ない部分に問題ありなのでは?
蛇足:
printf("%d",data[i]); は%cとすると最初の2バイトがBMと表示される(BMPファイル)
それが出てればうまくいっていると思ったらいい。
0955953
2005/12/26(月) 22:37:50追加でファイル名を疑ってみる。
"test.bmp"の代わりに違うファイルが開かれていないか?
imgfilenameは十分な大きさを持っているか?
printf("%s\n", imagefilename);の結果は?
0956デフォルトの名無しさん
2005/12/26(月) 22:59:36に物申す。
自分の悩んでいる点を単純化して可能なら丸まま書けよと。
> printf("%d byte読み込みました。\n", size);
以降はfclose以外不要だろと。
その他の部分を書き足しても >>954 で十分だろうと。
>>954のソースでも結果が想定外なら原因は限られる。
0957デフォルトの名無しさん
2005/12/27(火) 01:07:1194 FD 47 36 68 54 4C B9 77 31 41 FF 35 05 9D 00
↓
FFFFF94 FFFFFFFD 47 36 68 54 4C FFFFFFB9.....
とまだらにFFFFFFがついて表示されてしまいます。
ちゃんと上の表記のように表示するにはどうすればいんですか?
Dos窓からコピペするとなぜかFFFFFFはつかないです。
表示部分のソースを記しておきます。
size = fread(bytes, sizeof(char), 16, fp);
for(i=0;i<size;i++){
printf("%X ", bytes[i]);
}
0958デフォルトの名無しさん
2005/12/27(火) 01:19:540959デフォルトの名無しさん
2005/12/27(火) 03:38:530960デフォルトの名無しさん
2005/12/27(火) 15:15:13仮想的なアドレスなんですか?
それともアドレス0x1234は他のプログラム
から見てもアドレス0x1234なんですか?
0961デフォルトの名無しさん
2005/12/27(火) 15:22:37仮想的
OS様が管理されてる
0962960
2005/12/27(火) 16:51:18ありがとうございました。
0963デフォルトの名無しさん
2005/12/27(火) 17:01:21アクティブなタブの「浮き出る用に見せている描画部分(TCS_BUTTONならへこんでいる)」
も自分で描画したいのですが、もしくは自動的に描画させないようにしたいのですが、
何かいい方法がありますか?
0964デフォルトの名無しさん
2005/12/27(火) 19:18:220965デフォルトの名無しさん
2005/12/27(火) 20:27:20何の? 何のオーバーフローの話がしたいんじゃね?
0966デフォルトの名無しさん
2005/12/28(水) 11:29:36リソースエディタでダイアログを編集していましたところ、
配置されているテキストボックスなどのタブストップ順番が
しっちゃかめっちゃかになってしまいました。
製作された順番にタブストップするっぽいのですが、今後も拡張などをするかもしれませんし作り直すわけにはいきません。
何かタブストップの順番を明確に定義できる方法はありませんでしょうか
0967デフォルトの名無しさん
2005/12/28(水) 11:55:51*.rc内での順番が、タブストップの順番。
GUIで変更したいなら、リソースエディタでCtrl+Dして変更。
0968デフォルトの名無しさん
2005/12/28(水) 12:27:32メニューの<書式>→<タブオーダー>
クリックした順にタブオーダーが決定する
0969968
2005/12/28(水) 12:28:350970デフォルトの名無しさん
2005/12/28(水) 13:01:240971デフォルトの名無しさん
2005/12/28(水) 14:46:11うぉ!!知らなかった・・・
今まで、クリック踏み外した時、泣く泣く最初からやってたorz
thx!
0972963
2005/12/28(水) 15:06:45おさわがせしました。
0973デフォルトの名無しさん
2005/12/28(水) 15:38:30ありがとうございました!
メニューの<書式>というのが見当たらなかったのでCTRL+Dを使わせていただきました。
私のVS、でてないメニューがあるんですかね…。ちょっとそっちも探してみます。
0974デフォルトの名無しさん
2005/12/28(水) 16:18:09メモリを確保するとき、「スワップを発生させいで
確保できる最大メモリの半分くらい」つーノリで、
メモリを確保したいんですが、そのサイズって
どうやって見積もればいいんでしょうか?
やっぱそういうのは標準的な関数には無くて、
直接何らかのWINのAPIをたたく事になるんでしょうか?
0975デフォルトの名無しさん
2005/12/28(水) 16:57:11どこぞのお殿様?
0976デフォルトの名無しさん
2005/12/28(水) 17:39:03スマソ
0977デフォルトの名無しさん
2005/12/29(木) 00:33:21vc++6とか、vc++Net2003とかいうやつしか
売ってるのを見たことないのですが。
あと、c++の開発環境としてvc++6の次に
普通の後継バージョンとして買うなら
今のところvc++Net2003ってやつでいいのでしょうか?
0978デフォルトの名無しさん
2005/12/29(木) 01:20:42expressはただ
0979デフォルトの名無しさん
2005/12/29(木) 01:31:25expressはリソースエディタとか使えないらしいので
検討の対象外です。
0980デフォルトの名無しさん
2005/12/29(木) 06:20:00買えばいいじゃん。何をそんなに迷ってるの?
0981デフォルトの名無しさん
2005/12/29(木) 06:21:15そこまで調べてなぜ他のEditionのリリース情報を調べない?
0982デフォルトの名無しさん
2005/12/29(木) 07:12:27ですからVC++8っていうのがあるっぽいんで
それはなんなのかなと。。
0983デフォルトの名無しさん
2005/12/29(木) 07:21:02それは Visual C++ 2005 のことでしょ。
お前は Windows XP 進める人に向かって、
「ですから Windows NT 5.1 ってのがあるっぽいんで」
って言い続けるのか?
製品名 (Visual C++ 2005) とバージョン番号
(Visual C++ 8) の区別もつかないのか?
0984デフォルトの名無しさん
2005/12/29(木) 07:31:350985デフォルトの名無しさん
2005/12/29(木) 07:42:08「Visual C++ 2005」っていう製品もでてるんですか?
どこにも売ってなさげなんですが。。
0986デフォルトの名無しさん
2005/12/29(木) 07:52:48バージョン情報見ると、インストールされている製品
の欄に Visual C++ 2005 って表示されてるよ。
0987デフォルトの名無しさん
2005/12/29(木) 07:55:58http://www.microsoft.com/japan/msdn/vs05/visualc/VS05Cplus.asp
適用対象:
Microsoft Visual C++ 2005
Microsoft Visual C++ .NET
Common Language Runtime (CLR)
Microsoft Visual Studio 2005
普通に製品として Visual C++ 2005 ってあるけど・・・
なんで無いと思ったの?>>985は。
0988デフォルトの名無しさん
2005/12/29(木) 08:02:470989デフォルトの名無しさん
2005/12/29(木) 08:15:39ちなみに単品では買えない。
0990デフォルトの名無しさん
2005/12/29(木) 08:23:08今2万だしてc++.net2003買うなら
6をしばらく使って
VS2005スタンダードがでたら3万でそっちを買おうと思います。
で、、、
vc++8ってどれのことですか?
2003のほうのことでないですか?
0991デフォルトの名無しさん
2005/12/29(木) 08:28:21Visual C++ .NET 2002 which includes MFC 7.0
(known also as Visual C++ 7.0) was released in 2002
Visual C++ .NET 2003 which includes MFC 7.1
(known also as Visual C++ 7.1) was released in 2003
Visual C++ 2005 (known also as Visual C++ 8.0)
which was released in November of 2005.
0992デフォルトの名無しさん
2005/12/29(木) 09:04:35こだわる必要ないと思うんだがなぁ。
C++/CLI 使いたいならしらんが。
ちなみに、C++/CLI って結構面白いな
0993デフォルトの名無しさん
2005/12/29(木) 09:08:50GetDCとReleaseDCが対になっている様に、GetSafeHdcもリリース用の関数が
存在するのでしょうか?
0994デフォルトの名無しさん
2005/12/29(木) 09:47:34くだすれVisual C++(超初心者用)
ttp://pc8.2ch.net/test/read.cgi/tech/1135817069/
0995デフォルトの名無しさん
2005/12/29(木) 10:07:00正直、それならC#をお勧めする。
0996デフォルトの名無しさん
2005/12/29(木) 10:17:16それにこのスレの話題でもないし。
Managed C++ と比べてって話で面白いと。
正直 Managed C++ は面白いと言うよりは
「むりしてんなぁ」って感じだった。
0997デフォルトの名無しさん
2005/12/29(木) 10:23:35MFCならMFCのところに行ったほうがいいかも。
http://pc8.2ch.net/test/read.cgi/tech/1131958904/l50
GetSafeHdcは多分、m_hDCを返すだけだからReleaseとは関係ないと思うよ。
0998デフォルトの名無しさん
2005/12/29(木) 11:44:01ふざけてんのか?
0999デフォルトの名無しさん
2005/12/29(木) 12:05:49それとも次スレはVIP行き?
1000デフォルトの名無しさん
2005/12/29(木) 12:31:27/ ̄| / / |
∧ / |
/ / | /\ | /
/ \ / \ |_/
人 匚二二|
/ \ ┌──┐
/─┬─ \ ├──┤
─┼─ ├──┤
─┴─ └──┘
丿 \
| ___
ー十ー | | ー――十――― __|_ |ーー
__|_ |__| ,ーー十ーー __|_|_ |___
|___| | | .ー――亠――― ___ ___|
|___| ..|__| |――――| |___| |__
| .| | ト―――-| |___| |__
ー十ー ノ | ト―――‐| | .| |__
| / ..J | .J | J L__」
_ノ ノ_
/ ヽ / \
〈 | ̄| 〉
\ 丿 | /
 ̄
http://pc8.2ch.net/test/read.cgi/tech/1135817069/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。