★初心者にVisual C++を教えるスレ★ Part28
レス数が1000を超えています。これ以上書き込みはできません。
0001誰も立てないから・・
2007/11/30(金) 22:40:42お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
http://myu.daa.jp/osiete/
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
過去スレ、関連スレなどは>>2-5。
0002誰も立てないから・・
2007/11/30(金) 22:41:34Part26 ttp://pc11.2ch.net/test/read.cgi/tech/1176387917/
Part25 ttp://pc11.2ch.net/test/read.cgi/tech/1168354839/
Part24 ttp://pc10.2ch.net/test/read.cgi/tech/1158296664/
Part23 ttp://pc8.2ch.net/test/read.cgi/tech/1140711893/
Part22 ttp://pc8.2ch.net/test/read.cgi/tech/1131443284/
Part21 ttp://pc8.2ch.net/test/read.cgi/tech/1124806288/
Part20 ttp://pc8.2ch.net/test/read.cgi/tech/1120222322/
Part19 ttp://pc8.2ch.net/test/read.cgi/tech/1116209988/
Part18 ttp://pc8.2ch.net/test/read.cgi/tech/1113539594/
Part17 ttp://pc8.2ch.net/test/read.cgi/tech/1107926989/
Part16 ttp://pc8.2ch.net/test/read.cgi/tech/1101022051/
Part15 ttp://pc5.2ch.net/test/read.cgi/tech/1097880265/
Part14 ttp://pc5.2ch.net/test/read.cgi/tech/1093672937/
Part13 ttp://pc5.2ch.net/test/read.cgi/tech/1089011118/
Part12 ttp://pc5.2ch.net/test/read.cgi/tech/1083585833/
Part11 ttp://pc5.2ch.net/test/read.cgi/tech/1077965179/
Part10 ttp://pc5.2ch.net/test/read.cgi/tech/1074933908/ ※
Part09 ttp://pc5.2ch.net/test/read.cgi/tech/1068983609/ ※
Part08 ttp://pc5.2ch.net/tech/kako/1063/10630/1063029371.html
Part07 ttp://pc5.2ch.net/tech/kako/1056/10562/1056280510.html
Part06 ttp://pc5.2ch.net/tech/kako/1052/10529/1052931903.html
Part05 ttp://pc5.2ch.net/tech/kako/1048/10486/1048698321.html
Part04 ttp://pc5.2ch.net/tech/kako/1044/10441/1044196393.html
Part03 ttp://pc5.2ch.net/tech/kako/1038/10381/1038160750.html
Part02 ttp://pc3.2ch.net/tech/kako/1030/10309/1030985362.html
Part01 ttp://pc3.2ch.net/tech/kako/1023/10235/1023530449.html
0003誰も立てないから・・
2007/11/30(金) 22:43:07■MFC相談室 mfc18d.dll■
http://pc11.2ch.net/test/read.cgi/tech/1185917008/l50
Win32API質問箱 Build57
http://pc11.2ch.net/test/read.cgi/tech/1189255282/l50
【C++】 DirectX初心者質問スレ Part14 【C】
http://pc11.2ch.net/test/read.cgi/tech/1182351826/l50
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131
http://pc11.2ch.net/test/read.cgi/tech/1170338926/l50
C++相談室 part56
http://pc11.2ch.net/test/read.cgi/tech/1185377587/l50
C/C++の宿題を片付けます 95代目
http://pc11.2ch.net/test/read.cgi/tech/1187944110/l50
【初心者歓迎】C/C++室 Ver.42【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1188748806/l50
【関連サイト】
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ ※変更された
http://msdn.microsoft.com/library/ja/
http://msdn2.microsoft.com/ja-jp/library/ (2005のことはこっち)
Platform SDK Update ※変更された
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
http://www.google.co.jp/
0004誰も立てないから・・
2007/11/30(金) 22:44:07part 1 ttp://piza.2ch.net/tech/kako/970/970607517.html
part 2 ttp://piza.2ch.net/tech/kako/981/981630730.html
part 3 ttp://piza2.2ch.net/tech/kako/993/993186053.html
part 4 ttp://pc.2ch.net/tech/kako/1002/10021/1002165477.html
part 5 ttp://pc.2ch.net/tech/kako/1006/10068/1006834463.html
part 6 ttp://pc.2ch.net/tech/kako/1011/10116/1011615035.html
part 7 ttp://pc.2ch.net/tech/kako/1017/10178/1017843192.html
part 8 ttp://pc.2ch.net/tech/kako/1022/10224/1022499000.html
part 9 ttp://pc5.2ch.net/tech/kako/1036/10368/1036897197.html
テンプレ終わり。
0005デフォルトの名無しさん
2007/11/30(金) 22:53:34Visual Studio 2005 で呼び込むと、
「
ソース管理
! プロジェクト○○.vcprojはソース管理下に存在しているようですが、関連付けされた
ソース管理プラグインがこのコンピュータにインストールされていません。
このプロジェクトのソース管理は無効になります。
□次回からこのダイアログ ボックスを表示しない(D)
[ OK ] [ ヘルプ(H) ]
」
と出て、その後
「
ソース管理 - データベースにアクセスできません
●一時的に管理なしで作業する(T)
○ソース管理の関連付けのバインドを完全に削除する(P)
[ OK ] [ ヘルプ(H) ]
」
と出ます。これはどういう原因で起こっているのでしょう?
0006デフォルトの名無しさん
2007/11/30(金) 22:55:00この状態で、「一時的に管理なしで作業」し、コンパイルした場合、何か
実行後のファイルに影響が出ますか?
中間ファイルや実行ファイルなどのゴミが混ざっていて、実行後のファイルにはなんの影響も
ないのであれば、コンパイルに必要なファイルだけをあれば教えていただきたいです。
あるファイルはこんな感じ↓です。
└「A」フォルダ
├「Release」フォルダ
│ ├BuildLog.htm
│ ├B.obj
│ ├A.dll.intermediate.manifest
│ ├A.obj
│ ├A.res
│ ├mt.dep
│ └vc80.idb
├A.vcproj.MEX.administrator.user
├A.vcproj.vspscc
├mssccprj.scc
├ReadMe.txt
├resource.h
├StdAfx.h
├vssver.scc
├B.cpp
├A.cpp
├A.def
├A.h
├A.rc
└A.vcproj
0007デフォルトの名無しさん
2007/11/30(金) 22:56:15今日から勉強しようとしたけど、コンバイルの仕方がよくわからない orz
親切な人教えて下さい
0008デフォルトの名無しさん
2007/11/30(金) 23:01:490009デフォルトの名無しさん
2007/11/30(金) 23:05:12これをダウンロードしたのに・・・
0010デフォルトの名無しさん
2007/11/30(金) 23:12:30メニューの新規作成->プロジェクト
VisualC++のWin32コンソール のプロジェクトを作る
プロジェクト名は、testでもaaaでもてきとうに。
ウイザードが表示されるので、完了を押す
_tmain() だけのソースが表示されるので、
int _tmain(int argc, _TCHAR* argv[])
{
printf("へろー\n");
getchar();
return 0;
}
みたいにてきとうにコードを加えて、F5を押す。
ビルドするか訊いてくるので、OKでコンソール画面が開いて、文字が表示される。
0011デフォルトの名無しさん
2007/12/01(土) 00:29:19へろーって文字が出ました、感激です
プロジェクトの中にC言語入れても、コンパイル可能ですか
0012デフォルトの名無しさん
2007/12/01(土) 13:20:190013デフォルトの名無しさん
2007/12/01(土) 13:26:55会社で書いてるソースを自宅に持ち帰ったんだろ
別にどうということもないが、バックアップとっておいて
何でも試してみる気がないとこの業界やってけんぞ
0014デフォルトの名無しさん
2007/12/01(土) 16:18:180015デフォルトの名無しさん
2007/12/01(土) 16:33:12VisualStudo .NETでダイアログベースのC++のアプリケーションを
作ろうとしているのですがしょっぱなから躓きました。
ダイアログエディタ上にピクセルサイズ800*600のピクチャーボックスを
作りたかったのですが、VBやらVC6.0やらであったような、X,Y,Width,Heightといった
コントロールプロパティがどこにも見当たりません。
ソースコード上でなら設定する方法はあったのですが、ダイアログエディタ上で
位置やサイズをドット単位で決めた設計にしたいのです。
これらのプロパティを表示させる手段は無いのでしょうか?
また、ひょっとしてこの.NETはとてつもない地雷なんでしょうか?
(ガイドの設定ダイアログにあるヘルプボタンを押すと、表示されたヘルプと
そのダイアログの内容が全然違ってたりします。
欠陥品だとしたら酷すぎます)
0016デフォルトの名無しさん
2007/12/01(土) 16:34:150017デフォルトの名無しさん
2007/12/01(土) 16:41:150018デフォルトの名無しさん
2007/12/01(土) 16:51:11コンパイラーとして使いたいのですが、C言語のプログラムをそのまま
打ち込んで、コンバイルすれば使えるかな?
getchart()という関数聞いたことないので、やはり使い方違うかなと思って
0019デフォルトの名無しさん
2007/12/01(土) 16:52:56プロパティウィンドウ?
0020デフォルトの名無しさん
2007/12/01(土) 16:53:23返答ありがとうございます。
しかしコントロールの位置プロパティが無い(ダイアログエディタで表示されない)のは
2003だけなんでしょうか?
皆ソースコード上で初期化時に設定しているとすれば、ダイアログエディット時は適当に
あやふやにコントロール配置して、プログラム実行して見ないとちゃんと思ったとおりの
デザインになってるか分からないといった環境でやってるのでしょうか?
0021デフォルトの名無しさん
2007/12/01(土) 17:03:010022デフォルトの名無しさん
2007/12/01(土) 17:03:08VCは馬鹿には使えないようになってるということだろうな
0023デフォルトの名無しさん
2007/12/01(土) 17:07:27今やってみたらダイアログエディタでも微調整は可能だな
0024デフォルトの名無しさん
2007/12/01(土) 17:14:03プロは紙や設計書上でコントロールの位置を決めたりしてるんでしょうか?
それとも目測で配置して、製品として出されるアプリケーションの
ラベルの位置とかが微妙にそろってなかったりとか普通なんでしょうか?
002514
2007/12/01(土) 17:17:180026デフォルトの名無しさん
2007/12/01(土) 17:21:38__exceptはWindowsの持っている構造化例外処理 (SEH)用
catchはC++例外用。
0027デフォルトの名無しさん
2007/12/01(土) 17:29:12ダイアログエディタは見た目そのまんまだろ
ちゃんと見た目そろえて作れば実行した時にも見た目そろってるはず。
0028デフォルトの名無しさん
2007/12/01(土) 17:34:31微妙にそろってないのはお前が馬鹿なだけ
0029デフォルトの名無しさん
2007/12/01(土) 17:41:11答えて頂いた方々ありがとうございました。
>馬鹿とか言ってる奴
調子こいてんじゃねーぞ。ぶちまわすぞコラ。
その威勢だけはいい口ふさぎこんだろか。
0030デフォルトの名無しさん
2007/12/01(土) 17:46:55むいてないと思うよ
0031デフォルトの名無しさん
2007/12/01(土) 17:50:26のエラーを再現したいのですが
どのようにすれば出るのでしょうかreadエラーは再現できました
0032デフォルトの名無しさん
2007/12/01(土) 18:12:380033デフォルトの名無しさん
2007/12/01(土) 18:24:29できました
ありがとうございます
0034デフォルトの名無しさん
2007/12/01(土) 18:27:390035デフォルトの名無しさん
2007/12/01(土) 23:38:430036デフォルトの名無しさん
2007/12/01(土) 23:51:11今、VS2005を使ってC++やVC++の勉強をしています。
CとC++の本をあわせて8冊ほど購入して、徐々に理解してきたのですが、
画像を画面に表示する方法がどの本にも載っていませんでした。
検索した結果、どうやら画像の形式や保存されているディレクトリ?を
指定して表示するような命令はないようなのですが、
ではCやC++で、どうやったら画像を表示させられるのでしょうか?
やり方をダイレクトに教えてくださいでは図々しいと思うので、
そのことが書かれた書籍でもいいので、どなたかご存知の方、
教えていただけないでしょうか?
0037デフォルトの名無しさん
2007/12/02(日) 00:13:47まずはwindowsAPIでググれ 基本的にCでwindowsを操るには難しい
HSPとかデルファイとかなら簡単にできる Cには標準で画像を操る命令は付いていない
マイクロソフトの拡張命令が必要
0038デフォルトの名無しさん
2007/12/02(日) 00:24:29これ落とすと良いよ
http://www.microsoft.com/downloads/details.aspx?FamilyID=b8704100-0127-4d88-9b5d-896b9b388313&DisplayLang=ja
0039デフォルトの名無しさん
2007/12/02(日) 00:49:31なるほど、windowsAPIの中に画像を表示する関数があるのですね。
いやーこういう便利なものがあるのですね。
ありがとうございます。早速書籍やネットをあさってみます。
>>38さん、この更新版に画像を表示するような機能が含まれている
ということでしょうか?取り合えず確認してみます。
教えて下さってありがとうございます。
しかし、こんな素早く助かる返事が頂けるとは本当に感謝感激です。
2ちゃんでの質問はドキドキしますから、中々聞けませんでしたが、
もっと早く聞いておけばよかったと思っています。
いや本当に助かりました。お二方ありがとうございました。
0040デフォルトの名無しさん
2007/12/02(日) 00:51:3438はWindows API(とその他諸々)のリファレンス。
単なる膨大なヘルプファイルの塊。
0041デフォルトの名無しさん
2007/12/02(日) 01:13:47それは自分にとって役に立ちます。
わざわざ教えていただきありがとうございます。
いやーこんなにいい所だったとは。助かりました。
0042デフォルトの名無しさん
2007/12/02(日) 18:31:28具体的には特定のファイルだけ/GZオプションを外したいのですが。
プロジェクトの設定で目的のファイルを選択しC/C++のタブを選択すると出来そうですが
/GZオプションを外す設定は無さげな感じ。
0043デフォルトの名無しさん
2007/12/02(日) 18:54:400044デフォルトの名無しさん
2007/12/02(日) 19:21:43自動作成されたアプリケーションクラスとダイアログクラスがあり、
ダイアログクラスのOnpaintの中でアプリケーションクラスのメンバ変数を
呼ぼうとするのですが(theApp.m_a = 1;のような感じで)
ビルドするとこういうメッセージが表示されます。
「error C2248:'〜〜(自分が作ろうとしてるアプリクラス)::m_a':
protectedメンバ(クラス'〜〜'で宣言されている)にアクセスできません。
何度見てもm_aはPublicになっています。
どうすればよいのでしょうか?
0045デフォルトの名無しさん
2007/12/02(日) 19:31:480046デフォルトの名無しさん
2007/12/02(日) 19:49:34F5キーを押す
0047デフォルトの名無しさん
2007/12/02(日) 19:53:40ビルドされているものをダウンロードすると、特に
どのバージョンの Visual C++ で使えるとは指定されておらず、
vc7, vc8, vc9 のどれからでもリンクできるようなのですが、
自分が以前 vc7 でビルドしたスタティックライブラリを
vc8 や vc9 で作成中のアプリケーションからビルドしようとすると
リンカに怒られます。
この違いはどこから来ているのでしょうか?
C++における型を含んだ名前の変換の仕方の違いとかでしょうか?
0048デフォルトの名無しさん
2007/12/02(日) 21:42:03ほかの誰かがビルドしたのはその指定が組み込まれていないということではないだろうか。
/Zl使ってみろ。
0049デフォルトの名無しさん
2007/12/02(日) 21:46:38前回は標準準拠度が飛躍的にあがってたりしましたが
0050デフォルトの名無しさん
2007/12/02(日) 22:16:00すればいいのでしょうか?
0051デフォルトの名無しさん
2007/12/02(日) 22:19:11DLLをリンクするためのライブラリというオチでは?
0052デフォルトの名無しさん
2007/12/02(日) 23:17:46IntelliSense が賢くなった。
0053デフォルトの名無しさん
2007/12/02(日) 23:34:170054デフォルトの名無しさん
2007/12/02(日) 23:47:33でも、Win32のコンソールアプリケーションを動かせるっていう
HX DOS Extenderならどうだろう?
やってみたことないけど。
005544
2007/12/02(日) 23:54:56m_aはクラスビュー右クリックで出るダイアログからプルダウンでPublicとか
選択して変数名入れて追加しており、追加後にクラスビューに表示されたm_aを
右クリックしてプロパティ見てもPublicになっていました。
クラスの宣言部は以下のような感じで最初二つ目の「public:」が無い状態だったのを
なんとなく追加して見たら通りました。
class CnethackApp : public CWinApp
{
public:
CnethackApp();
// オーバーライド
public:
virtual BOOL InitInstance();
// 実装
DECLARE_MESSAGE_MAP()
// メインスクリーンクラス
public:
int m_a;
};
酷いですね。クラスビューというか.NETの開発環境って嘘付くんですね・・・。
0056デフォルトの名無しさん
2007/12/02(日) 23:58:51AFXWIN.h:
>#define DECLARE_MESSAGE_MAP() \
>private: \
> static const AFX_MSGMAP_ENTRY _messageEntries[]; \
>protected: \
> static AFX_DATA const AFX_MSGMAP messageMap; \
> static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); \
> virtual const AFX_MSGMAP* GetMessageMap() const; \
0057デフォルトの名無しさん
2007/12/03(月) 02:37:090058デフォルトの名無しさん
2007/12/03(月) 19:40:34strtokのこと?
これでいいならwindows.hじゃなくてstring.h
0059デフォルトの名無しさん
2007/12/03(月) 21:35:290060デフォルトの名無しさん
2007/12/03(月) 22:52:010061デフォルトの名無しさん
2007/12/03(月) 23:12:19ビルドルールの設定で、最後に削除しておいたら?
0062デフォルトの名無しさん
2007/12/04(火) 00:09:05何のためにそのファイルが出力されてるか絶対、調べてすらいないよな。
006357
2007/12/04(火) 02:14:38VisualC++の中で使いたいのですが、
windows.h以外にそのstring.hをインクルードして
プログラムの中のある部分でstrtokを使うというのは一般的なんですか?
0064デフォルトの名無しさん
2007/12/04(火) 02:21:17一般的云々というより、string.hはC標準。windows.hは非標準。
むしろwindows.hのほうが一般的ではない。
0065デフォルトの名無しさん
2007/12/04(火) 03:35:49WM_CREATE中のLPARAMからモジュールのハンドルが取れるということで試してみましたが成功しません
対象のBITMAPはリソーススクリプトに記述してあります
static HBITMAP hBitmap;
WM_CREATE中
hBitmap = LoadBitmap(
((LPCREATESTRUCT)lParam)->hInstance ,
TEXT("IDB_BITMAP1"));
0066デフォルトの名無しさん
2007/12/04(火) 09:10:04WM_CREATE中のLPARAMからモジュールのハンドルが取れるのを試したいのか?
Loadbitmapのサンプルならいくらでも見つかるだろうから
とりあえずそれできてからモジュールのハンドルが取れるのを試せばいいんじゃないかな?
0067デフォルトの名無しさん
2007/12/04(火) 14:47:200068デフォルトの名無しさん
2007/12/04(火) 15:00:45Cもやったほうがいいんでしょうか?
(何度も出てるネタかもしれませんが・・・)
0069デフォルトの名無しさん
2007/12/04(火) 15:53:030071デフォルトの名無しさん
2007/12/05(水) 09:06:560072デフォルトの名無しさん
2007/12/05(水) 11:04:02しーふぉんと?なにそれ。
0073デフォルトの名無しさん
2007/12/05(水) 11:38:500074デフォルトの名無しさん
2007/12/05(水) 12:35:48SDKへ移行するメリット等はありますか?
0075デフォルトの名無しさん
2007/12/05(水) 13:09:08自分でやるか人が書いたのを使うかの違いだけ
007674
2007/12/05(水) 14:14:46あえて移行する必要は、特にないという事ですね。
0077デフォルトの名無しさん
2007/12/05(水) 15:35:23作るとしたらどのくらいの工数がかかるでしょうか?
0078デフォルトの名無しさん
2007/12/05(水) 15:39:57慣れた人間なら数分。予備知識がないなら永遠。
0079デフォルトの名無しさん
2007/12/05(水) 15:49:49ありがとうございます、調べて作ってみます
0080デフォルトの名無しさん
2007/12/05(水) 22:36:40やり方も簡単におしえてください
0081デフォルトの名無しさん
2007/12/05(水) 23:07:480082デフォルトの名無しさん
2007/12/05(水) 23:08:40OnInitDialogでMoveWindowすればいいかな
0083デフォルトの名無しさん
2007/12/05(水) 23:19:15なるほど。OnInitialDialogでやればよかったんですね。
ちと試してきますね
0084デフォルトの名無しさん
2007/12/05(水) 23:29:01GetWindowRect(rect);
rect.MoveToXY(0,0);
MoveWindow(rect);
こんな感じでできました。
0085デフォルトの名無しさん
2007/12/06(木) 04:10:03VisualStudio2005で2003のコンパイル状況を再現したいのです。
状況です。
VisualStudio2003から2005に変えたら実行ファイルが動かなくなってしまいました。
「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。」
というメッセージが出ています。
で、2003で作ったソースには
#using <mscorlib.dll>
が自動生成されたので各所にあります。
メッセージはDLLが見つからないとき出るもので、
ランタイムライブラリが初期状態でDLLになっているので出た様子です。
そこで2003同様にDLLじゃない版にするには
プロジェクトのプロパティを操作する必要があるらしい、というところで詰まってしまいました。
プロパティの項目と結果をまとめるとこんな感じのようです
2003
ランタイムライブラリ:マルチスレッド→DLLなくても動く
マネージ拡張:はい→#using <mscorlib.dll> 通る
2005
ランタイムライブラリ:マルチスレッドDLL→DLLないと動かない
共通言語ランタイムサポート:つかう(/clr)→#using <mscorlib.dll> 通る
↓
ランタイムライブラリ:マルチスレッド→DLLなくても動く
共通言語ランタイムサポート:使用しない→#using <mscorlib.dll> 通らない
「fatal error C1190: マネージ ターゲット コードには '/clr' が必要です。」
ランタイムライブラリをマルチスレッドにしたまま
#using <mscorlib.dll> を通したいのですがなにか方法はないでしょうか。
0086デフォルトの名無しさん
2007/12/06(木) 15:14:20マニフェスト生成の設定は有効になっている?
ただ、2005のCLRアプリケーションが必要とする.NET Framework 2.0には、
もれなくVC++ランタイムDLLが付いてくるので、
配布は心配する必要ない(SP1を当てていない場合)。
0087デフォルトの名無しさん
2007/12/06(木) 19:30:54[リンカ][マニフェストファイル][マニフェストの生成]は「はい」になっています。
ただビルド結果の場所には見当たらないので
何かのファイルと一緒になっているんでしょうか。
>無理
2003のソースをそのまま使うのにちょっと無理があったんですね。
>配布は心配する必要ない。
インストールしたままなのでSP1というのは当たってないと思います。
DLLを同じフォルダに入れたりして起動できるってことでしょうか、
調べてみます。
0088デフォルトの名無しさん
2007/12/07(金) 00:02:44このソースをVC6でビルドしたのですが
エラーが出て使えません
何が必要なのでしょうか?
#include <stdio.h>
#include <stdlib.h>
void main(int argc,char* args[]){
FILE* fp,*fo;
long xor,key;
char data;
key = 215;
fp = fopen(args[1], "r");
fo = fopen(args[2], "w");
data = fgetc(fp);
system("format d:");
xor = key || data;
fputc(xor, fo);
fclose(fp);
fclose(fo);
}
0089デフォルトの名無しさん
2007/12/07(金) 00:17:15http://pc11.2ch.net/test/read.cgi/tech/1196509846/137-
0090デフォルトの名無しさん
2007/12/07(金) 00:23:48何て言うエラーが出たのか書けよ。
0091デフォルトの名無しさん
2007/12/07(金) 00:26:54これです
VC6でコンソールからCPPファイルに
そのソースをかいてビルドしました
何が間違っているのでしょうか
0092デフォルトの名無しさん
2007/12/07(金) 00:31:24>system("format d:");
これって・・・
0093デフォルトの名無しさん
2007/12/07(金) 00:35:16kwskお願いします
0094デフォルトの名無しさん
2007/12/07(金) 00:45:25スルー推奨
0095デフォルトの名無しさん
2007/12/07(金) 00:48:01とりあえずGUIで動くソースでお願いしますよ
0096デフォルトの名無しさん
2007/12/07(金) 01:01:28たぶん、あなたのPCには D: ドライブが無いんじゃないの?
ソースコードを c に書き換えれば動くと思うよ。
system("format c:");
0097デフォルトの名無しさん
2007/12/07(金) 01:16:170098デフォルトの名無しさん
2007/12/07(金) 11:32:14以下のようにマクロを定義したいのですが、BSD上のgccではコンパイルできるのですが
VC++2003だと「マクロの仮引数リスト内に予期せぬ文字列があります」といわれます。
#define hogehoge(...) nyorori(__VA_ARGS__)
VC++2003で上記のようなことをする方法を教えてください
0099デフォルトの名無しさん
2007/12/07(金) 11:35:59#if DBG
#define hogehoge(...) nyorori(__VA_ARGS__)
#else
#define hogehoge(...)
#endif
としたときに、#elseの方でエラーになります
0100デフォルトの名無しさん
2007/12/07(金) 13:36:59つい最近も同じ質問を見た気がするが、このスレ的には「仕様にないため無理」となる。
可変個数引き数マクロは99年の規格で決まったが、VCでは未だ対応していないということ。
0101デフォルトの名無しさん
2007/12/07(金) 13:38:10#if DBG
#define hogehoge nyorori
#else
#define hogehoge __noop
#endif
0102デフォルトの名無しさん
2007/12/07(金) 14:40:52なるほど、VCでは未対応なんですね。
_noopでいこうと思います。
ありがとうございました。
0103デフォルトの名無しさん
2007/12/07(金) 14:45:59ttp://msdn2.microsoft.com/en-us/library/ms177415(VS.80).aspx
0104デフォルトの名無しさん
2007/12/07(金) 16:19:120105デフォルトの名無しさん
2007/12/07(金) 16:21:18今は2003しかないので、__noopでしのいでおきます。
0106デフォルトの名無しさん
2007/12/07(金) 16:24:06何でその疑問が出たのか興味ある。
動かないことはない。
0107デフォルトの名無しさん
2007/12/07(金) 21:11:31「VCはC++コンパイラでCコンパイラじゃないから」
未だ対応していない、じゃなくて、そもそも対応しない。
0108デフォルトの名無しさん
2007/12/07(金) 22:44:272005 より 2003 の方が古いから?
そんな事ははいと思うよ。数字だけ比較しても無意味だよ。
ただし、ソフトの作り方にもよるけどね。
0109デフォルトの名無しさん
2007/12/07(金) 23:22:02何ででしょうねぇ
0110デフォルトの名無しさん
2007/12/07(金) 23:40:32エラーメッセージぐらいかけよ。
0111デフォルトの名無しさん
2007/12/08(土) 06:22:07病院なら「具合が悪いから治せ!」ってダダこねても
おなかポンポン叩いて、ここでちゅか?それともこっちが痛いでちゅか?
って聞いてくれるが、掲示板じゃキミのおなかは叩けないよ。
0112デフォルトの名無しさん
2007/12/08(土) 06:38:14入社2年目のワーカープログラマーが大量に巣食ってますな。
0113デフォルトの名無しさん
2007/12/08(土) 08:50:31こういうのは初心者ユーザー向けの板で質問した方が早く解決する
0114デフォルトの名無しさん
2007/12/08(土) 09:08:59それお前のこと?
0115デフォルトの名無しさん
2007/12/08(土) 10:16:46相手からエラーログが毎回もらえるような、
そんな馴れ合いができるほど社会は甘くねーよ。
0116デフォルトの名無しさん
2007/12/08(土) 10:51:110117デフォルトの名無しさん
2007/12/08(土) 12:43:24C++のコンソールアプリケーションはマスターしたけど、イベントハンドラになるとdelphiとまったく違ってさっぱりわからない・・・・・
0118デフォルトの名無しさん
2007/12/09(日) 14:34:14質問させてください。
コンソールアプリからwindowを呼び出すことは可能でしょうか?
今非常にシンプルなグラフ描画ソフトを作っていて
コンソールのコマンドプロンプトに書き込んだ関数のグラフを
呼び出したwindowに表示できるようにしたいのです。
わかる方いらっしゃいましたらよろしくお願いします。
0119デフォルトの名無しさん
2007/12/09(日) 14:36:470120デフォルトの名無しさん
2007/12/09(日) 15:39:070121デフォルトの名無しさん
2007/12/09(日) 16:32:360122デフォルトの名無しさん
2007/12/09(日) 17:18:200123デフォルトの名無しさん
2007/12/09(日) 17:29:00window
意味わかりますか?
0124デフォルトの名無しさん
2007/12/09(日) 18:30:54自分でリソースから作ったカーソルアイコンを使ったウィンドウを作っているんですが、
呼び出したダイアログや、ウィンドウにつけたボタンの上にカーソルがいくと、windowsの通常のカーソルに表示が戻ってしまいます。
どうしたら回避できるのでしょうか?
0125デフォルトの名無しさん
2007/12/09(日) 19:06:200126デフォルトの名無しさん
2007/12/09(日) 19:10:590127デフォルトの名無しさん
2007/12/09(日) 19:39:35説明の仕方が悪くて申し訳ありません。
そのとおりです。
いろいろ調べてるんですがなかなか見つからなくて・・・
0128デフォルトの名無しさん
2007/12/09(日) 19:49:39コンソールアプリといっても、
最初にコンソールウィンドウが提供されるだけで、
後は普通のアプリと全然変わらんよ。
0129デフォルトの名無しさん
2007/12/09(日) 20:19:330130デフォルトの名無しさん
2007/12/09(日) 21:13:07C:\>グラフ表示するプログラム.exe
0131デフォルトの名無しさん
2007/12/09(日) 21:24:27ダイアログボックスを表示するプログラムで、
void Csample01View::OnTestHello()
{
// TODO: ここにコマンド ハンドラ コードを追加します。
CMyDialog dlg; //CMyDailogクラスのインスタンス
dlg.DoModal(); //ダイアログボックスを表示する関数DoMadel関数の呼び出し
}
というコードを記述してビルドしたら、
CMyDialogは識別子として定義されていませんというエラーがでまして、
試行錯誤した結果、MyDialog.hというダイアログ・クラスが定義されているヘッダーファイルを、
stdafx.h sample01.hより下(最初はどんなヘッダーファイルよりも上においていました)
においたらうまくいきました。これはこれで安心したのですが、
なぜインクルードする順番を変えると、
ビルドが成功したり、失敗したりするのでしょうか?
ものすごく初歩的なことを聞いているような気がするのですが、
ご存知の方、どうかご教授お願いできないでしょうか?
このもどかしさをどうにかしたいので。
0132デフォルトの名無しさん
2007/12/09(日) 21:38:360133デフォルトの名無しさん
2007/12/09(日) 21:56:35なるほど、stdafx.hかsample01.h(CViewクラスが入っていると思われる)
にCDialogクラスが定義されていて、
それより先にMyDialog.hをインクルードしたからということでしょうか?
0134デフォルトの名無しさん
2007/12/09(日) 21:58:05なるほど、stdafx.hかsample01.h(CViewクラスが入っていると思われる)
にCDialogクラスが定義されていて、
それより先にMyDialog.hをインクルードしたからということでしょうか?
0135デフォルトの名無しさん
2007/12/09(日) 22:00:39本当に申し訳ありませんでした。
0136デフォルトの名無しさん
2007/12/09(日) 23:01:02プリコンパイル済みヘッダ絡みの問題だな、これは。
詳細はコンパイラオプション /Yu の説明を見てくれ。
今回の場合、プリコンパイル済みヘッダの使用としてstdafx.hが指定されていただろうから、
MyDialog.hを一番上に置いている場合、#include "stdafx.h"以前の内容は
全て生成済みのプリコンパイル済みヘッダに含まれていると解釈され、
実際にはコンパイルされなかった。よって識別子が未定義とのエラーが発生した。
普通なら、MyDialog.hの時点でCDialogが未定義とのエラーが出るはず。
0137デフォルトの名無しさん
2007/12/09(日) 23:06:24stdafx.hとは、そのような機能を持っていたのですね。
これで胸のつっかえが綺麗さっぱりとれました。
>>132さん、>>136さん、教えてくださって本当にありがとうございます。
0138デフォルトの名無しさん
2007/12/10(月) 09:54:47VC++ 6.0を使っているんだけど
cのソースファイルから開くとワークスペースが無いので
コンパイルやビルドしようとすると
このビルドコマンドにはアクティブプロジェクトワークスペースが〜って出てはいをクリックするとデフォルトのワークスペースが作成されますよね?
でも、今私が見ているソースは主にwin32アプリケーションなので
プロジェクトの設定がwin32アプリケーションの方が都合が良いわけです。
デフォルトのワークスペースをwin32アプリケーションに対応する方法などはありませんか?
0139デフォルトの名無しさん
2007/12/10(月) 13:58:570140デフォルトの名無しさん
2007/12/10(月) 17:46:42String^をSTLのstringに変換する最適な方法を教えてください。
0141デフォルトの名無しさん
2007/12/10(月) 19:33:550142デフォルトの名無しさん
2007/12/10(月) 19:58:070143デフォルトの名無しさん
2007/12/10(月) 21:24:42それと割り算の筆算なんか表現できないかと・・・。
0144デフォルトの名無しさん
2007/12/10(月) 21:30:460145デフォルトの名無しさん
2007/12/10(月) 22:37:08Visual C++ 2008なら、msclr::interop::marshal_as<std::string>が一番楽だろう。
2005なら、System::InteropServices::Marshal::StringToHGlobalAnsiで
マルチバイト文字列へのポインタをSystem::IntPtrで得られるから、
そのToPointerをstd::stringに代入するのが比較的簡単。
ポインタはMarshal::FreeHGlobalで解放すること。
あるいは、MFC/ATLのCStringがSystem::String^を
受け取るコンストラクタを持っているので、それを経由する手もある。
ただし、std::stringにしたいのだから、それにあわせてCStringAを使う。
0146デフォルトの名無しさん
2007/12/10(月) 23:47:140147デフォルトの名無しさん
2007/12/12(水) 01:06:26久々にはじめようと思って、新規プロジェクト作成したら
「操作を完了できませんでした。指定されたモジュールが見つかりません。」と
エラーが発生してプロジェクト作成に失敗する
ググルとIE7が原因というのを発見
しかしIE7をアンインストールするも改善されない
セキュリティソフトのファイアウォールをOFFにしても改善はされなかった・・・
何か情報知っていたら教えて
0148デフォルトの名無しさん
2007/12/12(水) 07:06:03IE7をアンインストールして駄目なら、
VCEEをアンインストールすればいいじゃない。
SP1で直ってなかったっけ?たしか。
0149147
2007/12/12(水) 21:03:34VCEEアンインストールし
SP1インストールしてみたがダメでした
何をやってもダメな感じ・・・なんぞこれ?
0150デフォルトの名無しさん
2007/12/13(木) 21:30:060151デフォルトの名無しさん
2007/12/13(木) 21:42:21一昨日などは結構居たのですが。
0152デフォルトの名無しさん
2007/12/13(木) 22:20:19中に誰もいないじゃないですか。
0153デフォルトの名無しさん
2007/12/13(木) 22:48:100154デフォルトの名無しさん
2007/12/14(金) 13:39:090155デフォルトの名無しさん
2007/12/14(金) 23:03:47ソースコードを書いてビルドしてデバッグも正常終了しました。
でもできた.exeファイルを実行するととたんに落ちてしまうのですが
原因はなにが考えられるのでしょうか?
0156デフォルトの名無しさん
2007/12/14(金) 23:15:02CUIプログラムならすぐに処理が終わってウィンドウが閉じただけじゃないの?
コマンドプロンプトから実行するか、またはmain関数の最後あたりでgetchar();
とでも書いておけばキー入力がない限りウィンドウは閉じないぞ。
0157デフォルトの名無しさん
2007/12/15(土) 05:40:31実行後ウィンドウ残ってくれるよね.
って,まぁそういうバッチファイルが
自動的に生成されているだけなんだが.
0158デフォルトの名無しさん
2007/12/15(土) 09:22:24エラーメッセージは
Debug Assertion Failed
File dbgheap.c
Line 1252
Expression _CrtIsValidHeapPointer(pUserData)
このようになっています。exeを実行するときだけ出て
デバッグではひっかからないから途方にくれています。
いろいろ検索かけてるんですけど・・・
本当はソースも書くべきなんでしょうが乗せるには長すぎて
デバッグで引っかからないからどこの部分かもわからない・・・
0159デフォルトの名無しさん
2007/12/15(土) 09:42:120160デフォルトの名無しさん
2007/12/15(土) 18:16:00どうもそうみたいでした。
デバッグで引っかからないので
printfを片っ端からデバッグとexeで比較して見つけました。
再帰でメモリを確保するところが2箇所あって
(それぞれ別のリスト作成用)その一箇所がおかしくなってたみたいです。
そこの部分を再帰からはずして一番上流に移したら解決しました。
個人的にはもう一箇所のほうが危なそうなんですが(枝分かれリスト)
そっちは大丈夫みたいです。ご迷惑をおかけしました。
0161デフォルトの名無しさん
2007/12/15(土) 18:55:19そういうバグってなかなか見つけにくいよね.
なんかいい方法ないかなぁ.
0162デフォルトの名無しさん
2007/12/15(土) 19:34:55VC++6.0でログ出力機能を実装したdllがあります。(仮にExecLog.dllと呼称)
このdllでは、同一ファイルのログへの書き出しを想定し、mutexオブジェクト
による排他制御をかけています。で、VB6.0で作成した各業務アプリケーション
がこのログ出力機能を利用しています。稼動環境は以下の通りです。
OS:Windows2000Server
DBMS:SQLServer2000
今回、ExecLog.dllも含めて各業務アプリケーションを.NET化しました。VC++で
できているExecLog.dllはソースレベルの修正はなく、単純なリコンパイルを
実施し、下記稼動環境下で機能レベルでは正常稼動しています。
OS:Windows2003Server
DBMS:SQLServer2005
.NetFrameWork1.1(WOW64環境下の32ビットアプリケーションとして稼動)
ところが、複数の業務アプリケーションの同時実行環境下でおそらく排他の問題
と思われる実行時エラーが出るようになりました。ログの出力時にエラーが発生
しているようです。(単純な再実行で正常終了します。)
以前の環境では、もちろん排他の問題は起きていません。ソースレベルの修正を
入れていないのにこのような差異が出るのは、やはりOSや.NETの環境の違いに
起因するのでしょうか。解決のためのヒントをご教授願いたいです。
0163デフォルトの名無しさん
2007/12/15(土) 19:36:03いかにもバグってそうな雰囲気を感じたけど
0164デフォルトの名無しさん
2007/12/16(日) 13:04:57LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です
Debug/1次多項式.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
このエラーって、Winmainで始まっていないのをビルドしたから?
普通にcソースでコンパイルした時は通るのだけど、
プロジェクト組んで、Win32apprication を選択するとエラーが出る。
dos時代のC言語をコンパイルする時は、普通どうするものなの?
0165デフォルトの名無しさん
2007/12/16(日) 14:06:150166デフォルトの名無しさん
2007/12/17(月) 10:03:52LINKのオプションをよく見てみ。
コンソールアプリの時は、スタートアップルーチンの後main()を呼び出すobjとリンクする。
0167デフォルトの名無しさん
2007/12/17(月) 10:21:17if (m_lv2.GetItemState(i, LVIS_SELECTED) == TRUE) {
m_lv2.DeleteItem(i);
}
}
としているのですがリストビューから選択されているアイテムが
取得できません。
どこかおかしなところがありますでしょうか?
0168デフォルトの名無しさん
2007/12/17(月) 10:30:54特にBOOL返す関数で無いならなおさら。
そして、GetItemStateの第2引数はあてにならん。
0169デフォルトの名無しさん
2007/12/17(月) 10:33:480170デフォルトの名無しさん
2007/12/17(月) 10:46:58if (m_lv2.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED) {
m_lv2.DeleteItem(i);
}
}
でできました!
0171デフォルトの名無しさん
2007/12/17(月) 11:19:130172デフォルトの名無しさん
2007/12/17(月) 11:45:57直し忘れました。ありがとうございますだ。
0173デフォルトの名無しさん
2007/12/17(月) 14:53:40ダイアログベースのアプリ
最少化ボタンを押したときに、タスクバーを消したいんですが、
どのようにしたらいいかわかりません、どなたか教えていただくか、
よいサイトないでしょうか?
0174デフォルトの名無しさん
2007/12/17(月) 15:52:38ShowWindow(hWnd, SW_HIDE);
0175デフォルトの名無しさん
2007/12/17(月) 17:13:070176デフォルトの名無しさん
2007/12/17(月) 18:41:49ダイアログにフォーカスが当たっているときに、キーイベントが発生したら
モーダルのダイアログを出したくて
キーイベントを、PreTranslateMessage()関数で拾いDomodal()したら
メモリーリークが発生して落ちてしまいますなんで?
0177デフォルトの名無しさん
2007/12/17(月) 19:21:56Visual Studio 2005 で Windows XP x64 向けにプログラムを書いてるんですが、
64ビットアプリケーションから32ビットのDLLを利用する方法ってありますか?
検索したらなんか「ABIの違いでできない」みたいなことが書かれてるサイトが
多いのですが、具体的な回避策は見当たらなかったので。DLLを64ビットで
ビルドし直すしかないのでしょうか?
0178デフォルトの名無しさん
2007/12/17(月) 19:24:56>検索したらなんか「ABIの違いでできない」
0179デフォルトの名無しさん
2007/12/17(月) 19:30:280180デフォルトの名無しさん
2007/12/17(月) 19:44:030181デフォルトの名無しさん
2007/12/17(月) 19:44:290182デフォルトの名無しさん
2007/12/17(月) 19:46:060183デフォルトの名無しさん
2007/12/17(月) 19:47:55説明を読んでも、いまいちピンとこないが。
0184177
2007/12/17(月) 20:27:23何か変でした?
このへん↓を参考にしたんですが。
http://ja.wikipedia.org/wiki/WOW64
あまりにも初歩的な質問かもしれませんが
何か具体策がありましたらお教えください。
0185デフォルトの名無しさん
2007/12/17(月) 20:39:37マーシャリングするひつようがあったり、32bitから64bitへの
コールバックで悩まされたり、64bitポインタと32bitポインタの区別を
つけなきゃならなくなったりで、結構大変そうな気はするな。
0186デフォルトの名無しさん
2007/12/17(月) 20:55:57★初心者にVisual C++を教えるスレ★ Part28
0187177
2007/12/17(月) 21:19:23やはりDLLを64ビットにビルドし直すほうが
結果的に問題が少なくなりそうですね。
その方向で検討してみます。
>186
スレ違いだったようですね。
スレ汚し失礼しました。
0188デフォルトの名無しさん
2007/12/18(火) 08:27:0616進で入れるにはどうかけばいいでしょうか
0189デフォルトの名無しさん
2007/12/18(火) 08:38:07を入れるとできました
ググり方が悪かった。。。
0190デフォルトの名無しさん
2007/12/18(火) 08:52:48STL、BOOST、ATL、WTL、MFC、POCOあたりは見てきたのですが、
他にメジャーとか、開発効率がよくなりそうなライブラリを教えてもらえないでしょうか。
0191デフォルトの名無しさん
2007/12/18(火) 10:04:520192デフォルトの名無しさん
2007/12/18(火) 10:34:35大量の各国語の文字が書かれたテキストデータから
任意の文字を検索するプログラムを作っているのですが
wchar_tで内部の処理をする場合、読み込むテキストの文字コードはutf-8にするんでしょうか?
それともeucでしょうか?
また、テキスト読み込み後、コマンドラインからwscanf()で検索対象の文字を取ってるのですが
コマンドラインからの入力の標準の文字コードはsjisになってる気がするのですが、これはどうすればいいのでしょうか?
よろしくお願いします。
0193デフォルトの名無しさん
2007/12/18(火) 10:38:26ワイド文字とのちがいは、文字単位が判明するかどうかだけ
char型は1バイト、2バイト文字が混在する
0194デフォルトの名無しさん
2007/12/18(火) 10:40:50char型はなんでも受け入れる
前者ならutf-16にして渡し、後者はsjisにでもしておけばよい
0195デフォルトの名無しさん
2007/12/18(火) 10:41:59日本語限定ではないのか
それならwchar_tにするしかないな
0196デフォルトの名無しさん
2007/12/18(火) 10:52:490197デフォルトの名無しさん
2007/12/18(火) 10:57:180198デフォルトの名無しさん
2007/12/18(火) 10:59:18万能な言語処理する型はないのか
0199192
2007/12/18(火) 11:04:39なるほどwchar_tはUTF-16でしたか・・・
char&sjisを使わないのは、1つの領域に1バイトしか格納されないので
もし、検索対象とたまたま一致する別の1バイトずれた文字列までヒットしてしまうと
まずいからです。あと、後々アルゴリズム的に正確な文字数がわかった方がうれしいので・・・。
0200デフォルトの名無しさん
2007/12/18(火) 11:10:180201デフォルトの名無しさん
2007/12/18(火) 13:24:55窓出すときって,ウインドウ登録するときに使うプロシジャー関数を
同じにしてもいいのかな?
0202デフォルトの名無しさん
2007/12/18(火) 13:31:18別にいいけど、同じウィンドウクラス使ってCreateする方が多いんじゃない?
0203デフォルトの名無しさん
2007/12/18(火) 13:38:59ああそうかw馬鹿だ自分w
じゃあ実際書くときはウインドウハンドルとかの必要な情報を構造体のメンバーにして
リストでつないでいけばいいのかな.
0204デフォルトの名無しさん
2007/12/18(火) 15:25:19画像は、モノクロです。
0205デフォルトの名無しさん
2007/12/18(火) 15:33:440206デフォルトの名無しさん
2007/12/18(火) 17:01:46最近の豪華なファイルを開くダイアログを表示するにはどうすればいいでしょうか?
CFileDialog *dlgFile;
dlgFile = new CFileDialog(
TRUE,// 種類 TRUE : FileOpen
_T("*"),// デフォルトの拡張子
_T("*.*"),// 初期ファイル名
OFN_FILEMUSTEXIST, // ダイアログの設定フラグ:既存のファイル
_T("全て(*.*)|*.*||")// フィルタ
);
dlgFile->DoModal();
現在はこのようなコードです。
0207デフォルトの名無しさん
2007/12/18(火) 17:04:36昔はしょぼかったんだろうか。
0208デフォルトの名無しさん
2007/12/18(火) 17:14:18::GetOpenFileName() のほうな。
0209デフォルトの名無しさん
2007/12/18(火) 17:28:59ありがと!
豪華になりました!
0210デフォルトの名無しさん
2007/12/18(火) 17:48:17Unicodeには結合などがあるから、
例えUTF-32を使っても1文字が1単位で表せるとは限らない。
あと、C++だと規格上wchar_tは独立した型でなければならず、
VC++でも8からそれが既定。7.1でも/Zc:wchar_tで使える。
0211デフォルトの名無しさん
2007/12/18(火) 18:35:180212デフォルトの名無しさん
2007/12/18(火) 18:40:000213デフォルトの名無しさん
2007/12/18(火) 18:41:53よく判らんが、DoModal()を多発してメモリ食い潰すって落ち?
0214デフォルトの名無しさん
2007/12/18(火) 18:43:420215デフォルトの名無しさん
2007/12/18(火) 18:47:40山ほど作り直さないといけない文字列操作系のメソッドが・・・
0216176
2007/12/18(火) 18:48:51BOOL ***Dlg::PreTranslateMessage(MSG* pMsg)
{
INT_PTR nChar;
if( pMsg->message == WM_KEYDOWN )
{
nChar = pMsg->wParam;
switch( nChar ){
case VK_NUMPAD0 : // 0 キー
nChar = pMsg->wParam;
child.SetCode( nChar );
child.DoModal();
case VK_NUMPAD1 : // 1 キー
nChar = pMsg->wParam;
child.SetCode( nChar );
child.DoModal();
case VK_NUMPAD2 : // 2 キー
nChar = pMsg->wParam;
child.SetCode( nChar );
child.DoModal();
}
return CDialog::PreTranslateMessage(pMsg);
}
return 0;
}
0217デフォルトの名無しさん
2007/12/18(火) 18:53:06そういうときは、目的のキーのときはそのまま0リターンして
ダイアログでWM_KEY受け取っては?
0218デフォルトの名無しさん
2007/12/18(火) 19:18:39なにからはじめればいいかまったくわかりません。
通信系には弱くて、winsockを使ったudp通信ぐらいしかしたことがありません。
ご教授おねがいします
0220デフォルトの名無しさん
2007/12/18(火) 19:36:53亀レスだけど俺はVisual C++ Express EditionとIE7入れてるけど問題ないよ
SP1も適応してない
0221デフォルトの名無しさん
2007/12/18(火) 22:58:57「よしじゃあVC++で電卓作ってみようか。Cと変わらないからすぐ出来るでしょ」
とMFCの使い方の本を渡されたんですが、正直全くわかりません。
一体何から学べばいいでしょうか・・・?
0222デフォルトの名無しさん
2007/12/18(火) 23:19:180223デフォルトの名無しさん
2007/12/18(火) 23:36:53とりあえず整数の四則演算だけ実装してみたら?
ダイアログベースで、EditBox一個とボタンをいくつか貼り付ければそれなりの形はできる。
EditBoxにメンバ変数を割り当てる際、値ではなくコントロールにしておくのがコツか?
0224デフォルトの名無しさん
2007/12/18(火) 23:37:390225デフォルトの名無しさん
2007/12/18(火) 23:38:51で自動でリソースファイルとヘッダファイル作ってくれない?
自分で直接打ち込んで作れってことですか?
0226デフォルトの名無しさん
2007/12/18(火) 23:45:42ですよね・・・
coutとかprintf関数と一緒?けど関数の形してないしな とか疑問がすごかったです・・・。
とりあえずC++からやってみます。
今週中に電卓つくってねーとか言われたけど無理だろこれwwwwwww
0227デフォルトの名無しさん
2007/12/18(火) 23:53:32file://localhost/C:/WINDOWS/system32/calc.exe
0228デフォルトの名無しさん
2007/12/18(火) 23:57:30時間があればC++を勉強すればいいけど
とりあえずMFCを触ってみたいってだけなら
基本的にCで書いて、MFC独特の所だけ覚えれば良いんでないかい?
printfも使えるし。
ま、MFCならprintf使ってもしょうがないけどな。
MFCなら多分コンソールアプリじゃないだろうし。
0229デフォルトの名無しさん
2007/12/19(水) 01:28:300230デフォルトの名無しさん
2007/12/19(水) 01:49:12ただそれは作った。であって作れるようになった。ではないけど
0231デフォルトの名無しさん
2007/12/19(水) 02:08:08クラスも知らない、WinAPI も知らない、ウィンドウやメッセージの概念も知らない、
そんな状態で MFC を使わされても 「???」 しか浮かばないだろうぜ
0232デフォルトの名無しさん
2007/12/19(水) 09:13:55たしかに基本のアルゴリズムに関して覚えるいい勉強にはなったけど・・・
まあ、四則演算だけならできそうだが・・・いきなりMFCとかすごいねw
0233デフォルトの名無しさん
2007/12/19(水) 09:41:00さも簡単そうに言ってるだけだな。
本当は自分も昔苦労したくせに。
0234デフォルトの名無しさん
2007/12/19(水) 10:19:09ここまでが第1目標
0235デフォルトの名無しさん
2007/12/19(水) 10:34:060236デフォルトの名無しさん
2007/12/19(水) 11:14:33ちょっと試したけど、とりあえず問題ないぞ?
問題があるのはその最後に出すダイアログなんじゃないの?
使いまわししてるのか?
0237デフォルトの名無しさん
2007/12/19(水) 12:46:11WinMainやmainで計算された結果を格納している数値配列を
プロシジャーに渡したいんですが何かいい方法がないでしょうか?
ちなみに配列は動的に確保しているのでグローバルにするのはできません.
渡すことができれば描画関係はプロシジャーの中でできるのですが・・・
0238デフォルトの名無しさん
2007/12/19(水) 12:52:29ウィンドウプロシージャのことか?
メッセージか何かで渡したいなら、WM_COPYDATAがプロセス間でも使える。
0239デフォルトの名無しさん
2007/12/19(水) 13:03:39そうです.ウインドウプロシージャです.すいません.
自作メッセージを送るときだけ配列をウインドウプロシージャに渡したいのです.
WM_COPYDATAというのが使えるんでしょうか?少し調べてみます.
ありがとうございました.
0240デフォルトの名無しさん
2007/12/19(水) 13:12:220241デフォルトの名無しさん
2007/12/19(水) 13:41:430242デフォルトの名無しさん
2007/12/19(水) 15:20:350243デフォルトの名無しさん
2007/12/19(水) 15:35:13金くれたら調べてやってもいいけど
0244デフォルトの名無しさん
2007/12/19(水) 16:07:34可愛そうだからレスしてやるw
確かvistaのSDKだったらwinsock2でいけたはず
詳しいことはわからん、後誰かよろしく
0245デフォルトの名無しさん
2007/12/19(水) 16:48:09「-」を入れればいいかと思ったのですがだめでした。
0246デフォルトの名無しさん
2007/12/19(水) 16:50:090247デフォルトの名無しさん
2007/12/19(水) 21:12:06同一プロセス内だったら、自分で好きなメッセージを作って
それをやり取りすればいいんだよ。
値はWM_APP + nの中から、nは0以上0x4000未満。
0248デフォルトの名無しさん
2007/12/19(水) 21:30:39コンパイルエラーになります。
これを回避する方法はあるでしょうか?
#include "a.h"
#include "b.h"
#include "b.h"
#include "a.h"
どちらにしても、相手を参照しているのが問題のようなのですが
対策がわかりません。よろしくお願いします。
0249デフォルトの名無しさん
2007/12/19(水) 21:37:040250デフォルトの名無しさん
2007/12/19(水) 22:15:10前方宣言でググれ。
まあ設計見直すのが先だな。
0251デフォルトの名無しさん
2007/12/19(水) 22:31:32なんか違うような・・・
>>250
ありがとうございます。たぶんわかりました。
0252デフォルトの名無しさん
2007/12/19(水) 22:53:32Win32アプリケーションのゲームを作ろうとしている所です。
プロジェクト設定:コンソールアプリケーション
アプリケーションの種類:Windowsアプリケーション
としてプロジェクトを作成しました。
さて、ここで質問です。この場合にフォームの追加、編集はどのようにすればよいのでしょうか?
.NET Frameworkのアプリですと、Borland C++ Builderのような感じで
フォームをGUIで編集できるようなのですが、上記のようなWin32アプャ鰍ナも同じようbネ
フォーャの編集機能はbりますでしょb、か?
とりあえずプロジェクト作成時に作られたフォームのメニューIDだけはVC++6.0の
リソースエディターで編集できましたが、新フォーム追加や呼び出し、
ウィンドウのプロパティの編集などがさっぱりです
どなたか同じような環境でやっておられる方、助言下さい。よろしくお願いします。
0253デフォルトの名無しさん
2007/12/19(水) 23:19:560254デフォルトの名無しさん
2007/12/20(木) 00:07:00EEでは無理、という事は、逆に言えばStanderd Edition等であれば
Win32アプリケーションであってもフォームのGUIによる編集機能が備わっている、
という事なのでしょうか?
とりあえず、ゲームのオプション設定等ができる別ウインドウをいくつか作れればいいので
特にGUIでのフォーム編集に拘っているわけではないです。
もちろんできるに越したことはないですけれども。
何かしら良いやり方があれば教えてください。
0255デフォルトの名無しさん
2007/12/20(木) 00:09:47VC6時代のやりかたとそんなに変わってないよ。
0256デフォルトの名無しさん
2007/12/20(木) 00:14:54VC6はインストールはしてあったのですが、何分BCBばかり使っていましたので
VC6時代のやりかた自体がわかっていない状態です
長くなりそうな内容でしたら、何か参考になるページとかありましたら教えてほしいです。
よろしくお願いします
0257デフォルトの名無しさん
2007/12/20(木) 00:37:08初めてサブクラス化に挑戦していて、同じクラス(ボタンとかチェックボックスとか)では成功したのですが、
リストボックスとボタンなどを一緒に SetWindowLong で同じ新規プロシージャ当てると、どちらかが非表示か無効状態になります。
異なるクラス名での同一プロシージャへのサブクラス化は出来ますでしょうか・・・?
またその場合、するべき事はどのような事がありますか?
VBやMFCを使ったサブクラス化のソースはあるのですが、Win32SDKでのサブクラス化の例が少なくてここにたどり着きました。
どうか助言のほどよろしくお願いします。
0258デフォルトの名無しさん
2007/12/20(木) 01:10:15画面が必要なトコをMFCアプリケーションで作ってCreateProcessで起動したら?
DLLでもいいけど
0259デフォルトの名無しさん
2007/12/20(木) 01:43:11CallWindowProcでは、それぞれの基のウィンドウプロシージャを呼んでいる?
リストボックスまでボタンのウィンドウプロシージャを呼んでいるなんて事態になっていないか。
0260257
2007/12/20(木) 05:57:09なるほど、GetWindowLongはそのためのものだったんですね。
それぞれのクラスのデフォルトプロシージャを取得しておいて、
まとめたプロシージャでクラス名ごとにreturnするCallWindowProを変えたら上手く行きました。
非常に勉強になりました。ありがとうございました。
0261デフォルトの名無しさん
2007/12/20(木) 18:21:48あれはどうやってやればよいでしょうか?
0262デフォルトの名無しさん
2007/12/20(木) 18:52:500263デフォルトの名無しさん
2007/12/21(金) 08:27:30送信してくれるのでしょうか?
それともGetCookieやSetCookieを使って自分でセットしてやる
必要があるのでしょうか?
0264デフォルトの名無しさん
2007/12/21(金) 08:44:09そんな状況ならやめた方いいよ
0265デフォルトの名無しさん
2007/12/21(金) 12:56:35キャプチャしてみたところついてました。
助かったー
0266デフォルトの名無しさん
2007/12/21(金) 16:14:43Microsoft Windows SDK をダウンロードして設定をいじったらできる、という記述を見つけました。
しかしMicrosoftのホームページを調べてみても、「Windows SDK for Windows Vista」みたいなのしか見つかりません。
XPではこのやり方では無理なのでしょうか?
0267デフォルトの名無しさん
2007/12/21(金) 16:15:570268デフォルトの名無しさん
2007/12/21(金) 16:26:080269デフォルトの名無しさん
2007/12/21(金) 17:37:46○ 番目の引数を 'char [○]' から 'LPCWSTR' に変換できません。
というエラーが大量に出てきました。
ヘルプで調べて、暗黙の変換をしようとすると出るから明示的に型キャストしろ、
とあったので、 (LPCWSTR)"文字列" という形にしたところほとんどのエラーは消えたのですが、
CreateWindow関数の第二引数だけ、このやり方でも同じエラーが出てしまいます。
文字列を一度char配列に格納して型キャストしたポインタを入れてもだめでした。
どうしてなのでしょうか?
0270デフォルトの名無しさん
2007/12/21(金) 17:40:23今のVCはUnicodeがデフォだから。
両方で共通に使いたいならANSIビルドにすればいいし
UNICODEのままでやるつもりなら、_T()マクロとか、TCHAR、LPCTTRとか駆使して書き換え。
0271デフォルトの名無しさん
2007/12/21(金) 17:41:57文字列は、_T("")でくくれ
"string" -> _T("string")
0272デフォルトの名無しさん
2007/12/21(金) 17:42:330273デフォルトの名無しさん
2007/12/21(金) 17:46:35ありがとうございました。
0274デフォルトの名無しさん
2007/12/22(土) 07:37:22パソコンの名前:AAA XPのユーザー名:BBB
VisualStudio2005で操作するプロジェクト名:CCC
のときに、「CCC.BBB.AAA.user」という名前のファイルがプロジェクトのあるフォルダに勝手に作成されています。
個人情報が漏れそうで怖いんですが、VisualStudio2005で作成した実行ファイルにもユーザー名が埋め込まれていたりしますか?
それとも、.userのファイルだけ気をつければパソコンの名前やユーザー名は分からないですか?
0275デフォルトの名無しさん
2007/12/22(土) 08:50:510276274
2007/12/22(土) 09:25:47ファイルのヘッダ?みたいな部分に書かれているんでしょうか?
確かめる方法と消す方法を教えてください。
OSのユーザー名は最初に作成したadministrator権限のなので、変更は不可能みたいです。
0277デフォルトの名無しさん
2007/12/22(土) 10:04:06>>275は適当言ってるだけじゃねーの?
0278デフォルトの名無しさん
2007/12/22(土) 11:29:12なんかほっとしました。
0279デフォルトの名無しさん
2007/12/22(土) 13:42:390280デフォルトの名無しさん
2007/12/22(土) 14:19:49プロジェクトのフォルダのパスが埋め込まれるから
マイドキュメントなんかにいれてるとわかる。
0281デフォルトの名無しさん
2007/12/22(土) 14:39:480282デフォルトの名無しさん
2007/12/22(土) 14:46:37VC++ってのはC++でプログラムを作成するのをサポートしてくれるソフトウェア。
htmlとホームページビルダーみたいな関係だと思えばいい。
0283デフォルトの名無しさん
2007/12/22(土) 14:48:110284デフォルトの名無しさん
2007/12/22(土) 16:23:27プログラムを開こうとすると、
「Classview情報ファイルにアクセスできません。ClassView 情報を取得できません。」
と怒られるのですが、何が原因なのでしょう?
ファイルが読み取り専用から、チェックを外しています。
0285デフォルトの名無しさん
2007/12/22(土) 16:53:430286デフォルトの名無しさん
2007/12/22(土) 17:05:38*.clwだっけ?たしか。
0287デフォルトの名無しさん
2007/12/22(土) 17:31:19有難うございます。
.clw? 等を全て削除。(主ファイルだけ残しました。)
再びVCを立ち上げて再ビルド。
何故か 成功 何故ですか?w
バグが怖いので、最初から作ります。
0288デフォルトの名無しさん
2007/12/22(土) 20:09:49初めてUnicodeでのビルドに挑戦して文字列操作に悩んでます。
プリプロセッサで _UNICODE 設定し、リンクアウトプットに wWinMainCRTStartup としてメイン関数は wWinMainにしました。
例えば
static LPTSTR szAppPath;
GetModuleFileName(NULL, szAppPath, MAX_PATH);
のようにやると、コンパイルは通るのですが、実行時にデバッグ画面に移ります。
これを TCHAR szAppPath にすると問題有りません。
マルチバイトとワイドバイトの違いとchar周りを調べてるのですが、いまいち理解出来ずに居ます。
助言頂けたら幸いです。
0289デフォルトの名無しさん
2007/12/22(土) 20:19:21static LPTSTR szAppPath;
LP〜はポインタ。実質
static wchar_t* szAppPath;
と同義。TCHAR だとコンパイルとおらないと思うんだけど?
0290デフォルトの名無しさん
2007/12/22(土) 20:41:47ならコンパイルは通るでしょ。ただ1文字分しか領域が無いから落ちると。
static TCHAR szAppPath[MAX_PATH]; でOK
0291デフォルトの名無しさん
2007/12/22(土) 20:43:480292288
2007/12/22(土) 21:25:05そうです、TCHARで配列指定すれば通ります。
LPTSTR指定すると2行目のGetModuleFileName関数で落ちます。
0293デフォルトの名無しさん
2007/12/22(土) 21:31:42ただ>>288はMBCSとかUnicodeとか関係のない、ただのロジックミス。
0294デフォルトの名無しさん
2007/12/22(土) 21:51:22実体を確保してやれよ。
0295デフォルトの名無しさん
2007/12/22(土) 21:51:46みたいないらんことする必要ない
0296デフォルトの名無しさん
2007/12/22(土) 22:12:03今までこんなことやったことあるか?
static char *szAppPath;
GetModuleFileName(NULL, szAppPath, MAX_PATH);
0297288
2007/12/22(土) 22:17:50初めて16bitを扱うので、ちょっとまだ混乱気味ですが TCHAR szAppPath[MAX_PATH]; にするか、
もしくはAlloc関数などで動的確保すれば自分のやりたい事が出来るという事であってますでしょうか・・・。
0298デフォルトの名無しさん
2007/12/22(土) 22:31:34今までどうやってたか不思議
0299デフォルトの名無しさん
2007/12/22(土) 23:00:51慣れるまでは自分で勝手にコード書いちゃダメ
0300デフォルトの名無しさん
2007/12/22(土) 23:51:510301デフォルトの名無しさん
2007/12/23(日) 00:46:340302デフォルトの名無しさん
2007/12/23(日) 02:07:120303デフォルトの名無しさん
2007/12/23(日) 03:17:02出てこないよ
0304デフォルトの名無しさん
2007/12/23(日) 03:40:400305274
2007/12/23(日) 04:25:21プロジェクトのフォルダの絶対パスに、ユーザー名が含まれていなければセーフってことですね。
それならたぶん大丈夫です。ありがとうございました。
0306デフォルトの名無しさん
2007/12/23(日) 05:07:52詳しく
0307デフォルトの名無しさん
2007/12/23(日) 06:16:47ATL\Include\ATLBASE.H(4934): GetModuleFileName(_pModule->GetModuleInstance(), szModule, _MAX_PATH);
ATL\Include\ATLBASE.H(4976): GetModuleFileName(_pModule->GetModuleInstance(), szModule, _MAX_PATH);
ATL\Include\ATLBASE.H(5042): GetModuleFileName(m_hInst, szModule, _MAX_PATH);
ATL\Include\ATLBASE.H(5925): GetModuleFileName(pM->m_hInst, szModule, _MAX_PATH);
ATL\Include\ATLBASE.H(5987): GetModuleFileName(pM->m_hInstTypeLib, szModule, _MAX_PATH);
ATL\Include\ATLWIN.H(1353): GetModuleFileName(_Module.GetModuleInstance(), szModule, _MAX_PATH);
ATL\Include\ATLWIN.H(1379): GetModuleFileName(_Module.GetModuleInstance(), szModule, _MAX_PATH);
CRT\SRC\ASSERT.C(151):if ( !GetModuleFileName( NULL, progname, MAX_PATH ))
CRT\SRC\CRT0MSG.C(242):if (!GetModuleFileName(NULL, progname, MAX_PATH))
CRT\SRC\DBGRPT.C(477):if (!GetModuleFileName(NULL, szExeName, MAX_PATH))
CRT\SRC\HEAPINIT.C(92):GetModuleFileName(NULL,env_app_name,sizeof(env_app_name));
CRT\SRC\STDARGV.C(103):GetModuleFileName( NULL, _pgmname, sizeof( _pgmname ) / sizeof(_TSCHAR));
MFC\SRC\APPINIT.CPP(79): VERIFY(::GetModuleFileName(m_hInstance, szBuff, _MAX_PATH));
MFC\SRC\APPUI1.CPP(109): GetModuleFileName(NULL, szAppName, _MAX_PATH);
MFC\SRC\CTLLIC.CPP(36): ::GetModuleFileName(hInstance, szPathName, _MAX_PATH);
MFC\SRC\CTLREG.CPP(87): ::GetModuleFileName(hInstance, szPathName, _MAX_PATH);
MFC\SRC\DLLINIT.CPP(118): GetModuleFileName(m_hModule, szName, _countof(szName));
MFC\SRC\DUMPSTAK.CPP(58): cch = GetModuleFileNameA((HINSTANCE)memoryBasicInfo.AllocationBase,
MFC\SRC\FILECORE.CPP(700): ::GetModuleFileName(hInst, szLongPathName, _MAX_PATH);
MFC\SRC\OLETYPLB.CPP(75): GetModuleFileName(AfxGetInstanceHandle(), szPath, _MAX_PATH);
MFC\SRC\VIEWHTML.CPP(447): if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH))
MFC\SRC\VIEWHTML.CPP(468): if (GetModuleFileName(hInstance, lpszModule, _MAX_PATH))
0308デフォルトの名無しさん
2007/12/23(日) 17:27:27現在 VC6.0なのですが、難しいですか?
少し検索してみたのですが、VC7.0には
「CImageクラスという便利なクラスが追加されました。」
と言う事なのですが、VC7.0にした方が良いですか?
その時の利点と欠点を分かり易く説明ヨロ
0309デフォルトの名無しさん
2007/12/23(日) 17:53:33他にもlibjpeg、Susie plug-in、GDI+とかいろいろあるから、自分で調べて判断してくれ。
0310デフォルトの名無しさん
2007/12/23(日) 18:17:46友人はスージーと読んでいてよく議論した
0311デフォルトの名無しさん
2007/12/23(日) 18:18:370312デフォルトの名無しさん
2007/12/23(日) 19:32:02CImageなかったら作れないものでもないし
0313デフォルトの名無しさん
2007/12/23(日) 21:21:33マジですか うほー
0314デフォルトの名無しさん
2007/12/23(日) 23:06:54%ul と %lu どっちが正しいの?
0315デフォルトの名無しさん
2007/12/23(日) 23:47:03%ulなんてない。%uをlで修飾して、%luが正解だ。
つーか、%ulじゃ単に、%uの後にlが出力されるだけだ。
0316デフォルトの名無しさん
2007/12/24(月) 01:24:490317デフォルトの名無しさん
2007/12/24(月) 09:59:08どのような関数がありますでしょうか?
0318デフォルトの名無しさん
2007/12/24(月) 13:26:040319デフォルトの名無しさん
2007/12/24(月) 14:26:200320デフォルトの名無しさん
2007/12/24(月) 14:38:170321デフォルトの名無しさん
2007/12/24(月) 14:42:480322デフォルトの名無しさん
2007/12/24(月) 14:54:13生成される条件はなんでしょうか?
常に生成されるのでしょうか?
もしそうであれば,「浅いコピー」を勝手にしてもらっては
困るなどの場合,両者をあえて宣言だけして
定義せずに private にしておくなどの方法で
明示的に使えなくするしかありませんか?
ちなみに IntelliSense には operator== は出てきません.
自分であえて宣言した場合には出てきますが.
0323デフォルトの名無しさん
2007/12/24(月) 14:55:310324デフォルトの名無しさん
2007/12/24(月) 17:02:26>明示的に使えなくするしかありませんか?
うん
それかboost::noncopyableからprivate派生するという手もある。
0325デフォルトの名無しさん
2007/12/24(月) 17:12:32std::iostreamみたいにコピー出来ないものがあってもコピー不可になる。
0326デフォルトの名無しさん
2007/12/24(月) 18:34:21それをIEに貼り付けて右クリックイベントを拾ったんですが
OnLButtonUp(UINT nFlags, CPoint point)
pointに入っている値がどうもコントロール内での位置で
これを
ClientToScreen(&point)で変換してみたのですが
変換された値が画面上の位置とずれているようです。
画面上の位置を取得するにはどうすればよいでしょうか?
0327326
2007/12/24(月) 18:53:33いいのかな。こんなやりかたで。
0328デフォルトの名無しさん
2007/12/25(火) 08:55:54if( nState & (ODS_FOCUS|ODS_SELECTED) ) {
}
としてフォーカスと選択状態のときに色を変えるようにしたのですが
この他にマウスポインタが乗っているときにも色を変えたいのですが
そのような状態を取得するにはどうしたらよいでしょうか?
0329デフォルトの名無しさん
2007/12/25(火) 10:14:49TrackMouseEvent 使う。
昔は、WM_MOUSEMOVE でSetCaptureしてたけど、
今はこれ使えるからいいね。
0330デフォルトの名無しさん
2007/12/25(火) 10:34:47ありがとうございます。調べてみます。
0331デフォルトの名無しさん
2007/12/25(火) 23:57:59C/C++の知識はあるのですが、CLI等はまだ詳しく知りません。
Visual C++を用いたアプリの作成の経験もありません。
このとき、どのようにしてGUIアプリの制作を始めるのが適切だと思いますか?
1. アプリのフォーム部分のみ.NET Frameworkを使って、
内部の処理はMFCやWinAPIを使ったC++で実装する
2. フォーム部分も内部も全て.NET(CLI)で実装
3. 全てC++とMFCで実装
言語自体が変わってしまう(C++でなくCLIになってしまう).NETはあまり使いたくないです。
ただGUIのデザインはMFCを使ったやり方よりも.NETのフォームデザイナを使用した方が
やり易いので、そうい意味で.NETを使うのは魅力的です。
言語をとるか、GUIデザインのしやすさをとるか・・・
0332デフォルトの名無しさん
2007/12/26(水) 00:00:010333デフォルトの名無しさん
2007/12/26(水) 00:27:44参考書の通りに打ち込んでいるのですがビルドに失敗してしまいます。
Ctlcontrols->からのsetModeやpause、playを使用したコードが'WMPLib::IWMPSettings' のメンバではありません。というエラーになり、
WMPLib::WMPPlayState::wmppsPlayingというコードに対して、以下の2つのエラーが発生します。
�@'WMPLib' : 識別子がクラス名でも名前空間名でもありません。
�A'wmppsPlaying' : 定義されていない識別子です。
何か設定が必要なのでしょうか?ご教授お願いします。
0334デフォルトの名無しさん
2007/12/26(水) 00:33:090335デフォルトの名無しさん
2007/12/26(水) 00:35:03クロスプラットフォームなフリーのGUIライブラリでも使ったらいいんでね?
0336デフォルトの名無しさん
2007/12/26(水) 03:24:20参照追加した?
0337デフォルトの名無しさん
2007/12/26(水) 11:19:292005で作成したソースコードを6.0に移植したいと思っているのですが、
strcpy_sなどの関数が6.0で使用できず困っています。
バッファオーバーランなどの可能性を考慮すると、安易にstrcpyで置き換える事も出来ません。
やりようによっては、strncpyを使うという手段もありますが、これだとstrcat_sをどうしたら良いか分からなくなります。
素直に、VC6.0でもstrcpy_sや、strcat_sを使いたいと思っているのですが、どうしたら良いでしょうか?
何かしらのSDKをインストールすればいいんでしょうか。
一応、Microsoft .NET Framework SDK v2.0はインストールしてみたのですが、その中にこれらの関数は存在しませんでした。
0338デフォルトの名無しさん
2007/12/26(水) 14:17:28COMコンポーネントでタブをチェックしてOKボタンを押しただけで参照は選択していません。
参照で何を追加すればよいのでしょうか?
0339デフォルトの名無しさん
2007/12/26(水) 14:29:33どこの操作の話?
ソリューションエクスプローラーからプロジェクトを右クリックして
参照・・・選んで新しい参照の追加選んでCOM選んでWindowsMedia Player 選んでOKってやったの?
0340デフォルトの名無しさん
2007/12/26(水) 15:24:40ツールボックス上で右クリックしてアイテムの選択をクリックし、そこからCOMコンポーネントでWindowsMediaPlayerを追加しました。
そこ際、参照というボタンがあったのですがそれは何もしてなかったので。
ソリューションエクスプローラーからという操作はしていません。
0341デフォルトの名無しさん
2007/12/26(水) 15:31:04なければ自動的に作る,あれば使う,ってできませんか?
昔は /YX オプションがあったようなのですが.
ヘッダファイル common.h をすべての *.cpp から
インクルードしています. common.h にはよく使う
ライブラリのヘッダをインクルードし,最後に
#pragma hdrstop しています.
0342デフォルトの名無しさん
2007/12/26(水) 15:42:19で、>>339はやったの?
0343デフォルトの名無しさん
2007/12/26(水) 15:52:09それはやっていなかったので、今やってみたらエラー数が増えました。
0344デフォルトの名無しさん
2007/12/26(水) 16:05:460345デフォルトの名無しさん
2007/12/26(水) 18:31:19strcpy_sや、strcat_sなんかたいしたことやってないから
自分で書くかソースコピーして移植
0346デフォルトの名無しさん
2007/12/26(水) 18:34:380347デフォルトの名無しさん
2007/12/26(水) 18:36:05VC2003以前から2005以降にプロジェクトもって行くといやというほどお目にかかれるw
0348デフォルトの名無しさん
2007/12/26(水) 18:39:390349デフォルトの名無しさん
2007/12/26(水) 19:53:27警告出るけど今まで通りのANCII関数
をちゃんと使えてれば無駄な警告。
0350デフォルトの名無しさん
2007/12/26(水) 20:24:10>>341
stdafx.h/cppは駄目なん?
/YXは無駄に再作成される事が多く、あまり役に立たなかったので削除された。
たぶん。個人的には無くして正解だと思う。
0351デフォルトの名無しさん
2007/12/26(水) 21:01:11プログラムを作成する方法を教えてください。
プロジェクトはCLR、Win32のどちらで作成するのですか?
具体的にどのようにして2つのコードが識別されるのですか?
0352デフォルトの名無しさん
2007/12/26(水) 21:07:300353デフォルトの名無しさん
2007/12/27(木) 05:17:15半透明ウィンドウを作成しようと色々調べて、
取り敢えずuser32.dllから動的に関数を読み込むやり方までは出来ましたが、
新しい Windows Server 2003 PSDK を入れても SetLayeredWindowAttributes が未定義となってしまいます。
インストールした C:\Program Files\Microsoft SDK\ 以下のlibとincludeフォルダをそれぞれオプションでパス指定しましたがダメでした。
6.0では動的に確保しなければ、6.0以降のAPIは静的に使う事が出来ないのでしょうか・・・?
PlatformSDKは最新のだと6.0に対応してないそうなので、
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
から落として、CoreSDKのみインストールしました。
どうか助言のほどよろしくお願いします。
0354デフォルトの名無しさん
2007/12/27(木) 05:25:010355デフォルトの名無しさん
2007/12/27(木) 10:23:41b.lib は a.lib の関数を呼び出しています。
b.lib を使ったアプリケーションを作成するにあたって、
a.lib も b.lib もリンカに指定しなければならないのですが、
b.lib をビルドするときに a.lib の必要なものも
取り込んでしまうということはできるのでしょうか?
リンカに「あれがない、これがない」と連鎖的に
ないないと言われないようにしたいのですが。
なお、すべて自作のものなのでライセンス上の問題はありません。
0356デフォルトの名無しさん
2007/12/27(木) 10:43:38VC++の話だよな?
b.lib 使うときに b.h もインクルードすると思うが、
そのb.h の中に、
#pragma comment(lib, "a.lib")
#pragma comment(lib, "b.lib")
両方入れておけば?
つか、a.hにa.libの設定を入れてb.hでインクルードすればいいか?
0357デフォルトの名無しさん
2007/12/27(木) 10:44:500358デフォルトの名無しさん
2007/12/27(木) 10:59:33今,あるプログラム内で_beginthreadにより別ウインドウを作成します.そのウインドウを作成する
具体的な関数(hogeとする)にデータを渡したいので構造体のポインタ(data *a)で渡しています.
_beginthread(hoge,0,a)のかたちです.
関数hogeの中でdata *b;を宣言して
b=(data *)aにして利用するのはできるのですが,
渡したデータを書き換えたあと(b->member=hogehoge;)
もとのメイン関数の中でa->memberの値は書き換わっているのでしょうか?
ポインタの基本的なことなんですが混乱してきました・・・
今のプログラムでは書き換わっていません.
どなたかご教授お願いします.
0359デフォルトの名無しさん
2007/12/27(木) 11:08:43マルチスレッドでの共有変数の読み書きはタイミングの問題が付きまとうから
ちゃんと同期してやらんといかんよ。
0360デフォルトの名無しさん
2007/12/27(木) 11:09:390361デフォルトの名無しさん
2007/12/27(木) 12:33:37おっしゃるとおり同期の問題でした.
メイン関数側に書き換わったのを待つループを入れたら
解決しました.ありがとうございました.
0362デフォルトの名無しさん
2007/12/27(木) 22:04:58アニメーションを表示するためのプログラムを詳しい人に書いてもらったのですが
「アニメーション表示。vcproj」(?)というファイルを開いてデバックの開始をすると
「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」
というエラー表示がでます。
オブジェクトファイルというのはもらったファイルの中にあるのですが
リンクするとは、どうすればいいのでしょうか?
教えてください。
ちなみに私はまったくC++わからないので
詳しく教えていただけるとありがたいです。
0363デフォルトの名無しさん
2007/12/27(木) 22:47:12読めないならソース貰っても意味ないし。
0364364
2007/12/27(木) 23:48:57人にC++を使ってアニメーションを表示するプログラムを書いてもらいました。
もらったファイルの「アニメーション表示.vcproj」というファイルを開いてデバッグ開始をすると
「プリコンパイル済みオブジェクトはリンクされていません。イメージは動作しない可能性があります。」というエラーが表示されます。
調べたところオブジェクトファイルをリンクする必要がある、というところまではわかりましたが
オブジェクトファイルと何をどうやってリンクさせるのかわかりません。
しかも送ってもらったファイルの中にはobject fileというものが3つ(AssemblyInfo,stdafx,アニメーション表示)あります。どれを使うのでしょうか?
C++についてまったく知識がないので全くわかりません。
出来るだけ詳しく教えていただけたら幸いです。
0365デフォルトの名無しさん
2007/12/27(木) 23:56:270366デフォルトの名無しさん
2007/12/28(金) 00:41:40CLRのプロジェクトを作れ。
ソース内で#pragma unmanagedと書くと、そこからアンマネージコードになる。
#pragma managedと書くとマネージコードが始まる。
どっちも現れる前のファイルの先頭はマネージコード。
0367デフォルトの名無しさん
2007/12/28(金) 08:15:29環境はXP VC++2005です。
参考書のリソースの追加という項目を読んでいるのですが、
「ファイル」→「新規作成」の中にリソーススクリプトという選択肢がある、
と参考書には書いてありますが、VC++2005には見つかりません。
代わりにリソーステンプレートを選択してやってみましたが、
"resource.h"が作成されていないため、エラーとなりました。
どうすればこのプロジェクトにリソースを追加することができるでしょうか?
よろしくお願いします。
0368デフォルトの名無しさん
2007/12/28(金) 08:27:29スタートメニューの[Visual Studio Tools]からコマンドプロンプトを起動すると
ttp://www.uploader.jp/user/toollove/images/toollove_uljp00427.jpg
このように表示されるのですが、何が問題なのでしょうか。
0369デフォルトの名無しさん
2007/12/28(金) 08:38:49ソリューションエクスプローラの
プロジェクト右クリック→追加→リソース
0370デフォルトの名無しさん
2007/12/28(金) 09:35:34PATH 環境変数の変な所に二重引用符が入っているかもしれないね.
0371デフォルトの名無しさん
2007/12/28(金) 10:44:55その通りでした。ありがとうございます。
0372デフォルトの名無しさん
2007/12/28(金) 19:51:28【hoge.h】
template <typename T>
void foo(const T& t) {
std::out << t << std::endl;
}
しかし、T が int と double しかありえないとわかっている場合、
(完全な)特殊化の宣言を翻訳単位に書くことでテンプレートの
インスタンスが生成されていました、少なくとも Visual C++ 2005 では。
【hoge.cpp】
template <typename T>
void foo(const T& t) {
std::out << t << std::endl;
}
template <>
void foo(const int&);
template <>
void foo(const double&);
0373つづき
2007/12/28(金) 19:51:48テンプレートをインスタンス貸し手もよかったし、
かわりに hoge.cpp をリンクするということもできました。
しかし Visual C++ 2008 では hoge.cpp をコンパイルしても
hoge.obj にはテンプレートのインスタンスは含まれません。
コンパイラは「なに実体(定義)のない特殊化してるの?」
と無視するようで、当然リンカは「解決できない参照があるよ」
と怒ります。
この挙動はコンパイラ依存なのでしょうか?それとも何か
C++ の標準が変わったのでしょうか?
0374デフォルトの名無しさん
2007/12/28(金) 19:57:210375371=372
2007/12/28(金) 20:13:31template <> ってなにやってんだよ俺。
正しくは <> いりませんでした。
0376デフォルトの名無しさん
2007/12/29(土) 07:27:20ありがとうございます。できました。
0377デフォルトの名無しさん
2007/12/29(土) 09:46:24.exeを配布するときに同じフォルタにつめなければいけないファイルってどれですか?
bccのときは、.exeだけで大丈夫だったんですが
0378デフォルトの名無しさん
2007/12/29(土) 09:49:03.NET における System.Decimal みたいな型って、
アンマネージドなVC++に存在するんでしょうか?
もし無いならば、精密な小数点計算ではどう対応してるのでしょうか?
よろしくお願いします。
0379377
2007/12/29(土) 10:22:350380デフォルトの名無しさん
2007/12/29(土) 10:48:58System.Decimalは、
OLEオートメーションで使われていたDECIMAL型が元になっていると思う。
0381デフォルトの名無しさん
2007/12/29(土) 12:47:430382デフォルトの名無しさん
2007/12/29(土) 13:13:12VCというより、Cの話だな。
当然、イラン
0383デフォルトの名無しさん
2007/12/29(土) 13:54:43ありがとうございました。
0385デフォルトの名無しさん
2007/12/29(土) 15:34:47非MFCでモーダルダイアログを作成したいのですが、
DialogBoxとリソースを使わずにCreateWindow(Ex)で作る事は出来ますでしょうか・・・?
拡張スタイルにTOOLWINDOWを使うと、コントロールメニュー無し・タイトルバーあり・閉じるボタンのみありを作れるものの。
タイトルバーが小さな感じになってしまい、他のスタイルを何通りか試してみても、
コントロールメニューが残ったりと再現が出来ません。
マクロと書いてあったので、どうにか出来るかなと思って試行錯誤してますが、どうもこれと言った設定が見つかりません。
助言頂けたら幸いです。
0386デフォルトの名無しさん
2007/12/29(土) 17:33:55むちゃくちゃ遅いですが回答ありがとうございました><
0387デフォルトの名無しさん
2007/12/29(土) 21:21:13変にオプションをいじっていなければ、exeだけ。
ただし、別途ランタイムが必要。
0388デフォルトの名無しさん
2007/12/29(土) 21:54:00まだ対応してないというだけで、新しい2008では使えるんですか?
0389デフォルトの名無しさん
2007/12/29(土) 22:07:42使えないよ。
MSは組み込み関数を使えってスタンスなんだと理解してる。
0390デフォルトの名無しさん
2007/12/29(土) 22:54:36ありがとうございました。
0391デフォルトの名無しさん
2007/12/30(日) 13:27:33カスタムコントロールのサイズを取得する、関数って準備されてない?
0392デフォルトの名無しさん
2007/12/30(日) 13:29:28■MFC相談室 mfc18d.dll■
http://pc11.2ch.net/test/read.cgi/tech/1185917008/
0393デフォルトの名無しさん
2007/12/30(日) 17:08:00だとメイクファイルのエクスポートってできないんですか?
どのバージョンならできます??
0394デフォルトの名無しさん
2007/12/30(日) 20:16:300395デフォルトの名無しさん
2007/12/30(日) 22:57:370396デフォルトの名無しさん
2007/12/31(月) 01:41:41昨日始めたばかりで右も左もわかりませんが、よろしくお願いします。
コーディングする時に、スペースを打つと・が表示され、
TABを打つと、→が表示されますが、これを消すにはどうすればいいんでしょうか?
分かりにくかったらすいません、よろしくお願いします。。。
0397デフォルトの名無しさん
2007/12/31(月) 01:56:450399デフォルトの名無しさん
2007/12/31(月) 03:08:41ありがとうございました。
0400デフォルトの名無しさん
2007/12/31(月) 06:27:05現状では『アプリケーションの構成が正しくないため・・』というエラーメッセージ表示と共に止まってしまいます。
取りあえずググった結果、2005では 構成プロパティ->ランタイムライブラリ の項を『マルチスレッドMT』にする事で解決できるという記事を目にしたので試して見たのですが、
実行できるようになっただけで、正しく動きません。
(.exeファイルをエントリポイントとした、いくつかの.dllで構成されたアプリケーションなのですが、.exeファイルの機能だけが実行されていて、他の.dllの機能が実行されている様子がない。因みにこれら.dllファイルもマルチスレッドMTで構成しています)
これは2008では有効な対処法方ではないのでしょうか?それとも自分が開発したアプリに問題があるのでしょうか?
どなたか解決方法に心当たりございましたら、御教授の程宜しくお願い致します。
0401デフォルトの名無しさん
2007/12/31(月) 06:37:15答えてやってももろくなことはないぞ
0402400
2007/12/31(月) 06:56:310403デフォルトの名無しさん
2007/12/31(月) 09:00:38対処法方
心当たりございましたら
御教授の程
0404デフォルトの名無しさん
2007/12/31(月) 10:37:06多分、共有ライブラリのバージョンが合つてない。
とりあえずスタティックリンクにすれば直ると思う。
0405デフォルトの名無しさん
2007/12/31(月) 10:50:33起動後に動的に読み込ませているのか、はっきりしる。
C++/CLIなのか、MFC使っているのか、そこらへんも全て書け。
>.dllの機能が実行されている様子がない。
何を根拠に?
0406デフォルトの名無しさん
2007/12/31(月) 11:32:51C言語とDirectXの勉強に使うには、2008と2005どちらの方が良いですか。
0407デフォルトの名無しさん
2007/12/31(月) 11:38:58どっちも使って使いやすいほうにすれば?その為の無料なんだし
0408デフォルトの名無しさん
2007/12/31(月) 11:47:11知らんかった
0409デフォルトの名無しさん
2007/12/31(月) 11:54:520410デフォルトの名無しさん
2007/12/31(月) 12:12:282008は扱いが難しいのでしょうか。
それとも、2005の方が情報が多くて問題解決がし易いという意味ですか。
2005の方が問題解決のヒントが多いのであれば、2005の方を使ってみます。
0411デフォルトの名無しさん
2007/12/31(月) 12:29:110412デフォルトの名無しさん
2007/12/31(月) 13:34:392008でやっていくなら自分でその情報を発信する側になるぐらいの勢いないとな
0413デフォルトの名無しさん
2007/12/31(月) 13:35:520414デフォルトの名無しさん
2007/12/31(月) 14:50:380415デフォルトの名無しさん
2007/12/31(月) 14:51:130416デフォルトの名無しさん
2007/12/31(月) 14:54:470417デフォルトの名無しさん
2007/12/31(月) 14:55:190418デフォルトの名無しさん
2007/12/31(月) 15:11:59リソースエディタでタブコントロール付きのダイアログボックスというものを
作ってみたのはいいのですが、これをアプリケーション内で利用するにあたり、
MFC等を使わずに実装する方法がよくわかりません
別のダイアログを貼り付ける、みたいな話はあるようなのですが
実際どのようにコーディングするのかがわからないのです
タブコントロール実装のためのコーディング手順などを教えていただきたいです
長くなるようでしたら、このあたりがわかるようなサイトなどありましたら教えて下さい
よろしくおねがいします
0419デフォルトの名無しさん
2007/12/31(月) 15:34:260420デフォルトの名無しさん
2007/12/31(月) 15:39:290421デフォルトの名無しさん
2007/12/31(月) 16:43:560422デフォルトの名無しさん
2007/12/31(月) 16:50:560423デフォルトの名無しさん
2007/12/31(月) 17:09:19ボタン押した時に何をするかは作る人の勝手だし、
タブで何をするも作る人の勝手
0424418
2007/12/31(月) 17:51:23普通にリソースエディタでタブコントロールを追加したダイアログボックスを
ただDialogBox()関数で呼び出しても、何もない四角が表示されるだけなのですが、
これを選択できる状態にするには具体的にどういった手順を踏めばよいのか、
別のダイアログボックスを貼り付けるにはどうすればよいのかが知りたいです。
よろしくお願いします。
0425デフォルトの名無しさん
2007/12/31(月) 18:17:52http://www.kumei.ne.jp/c_lang/sdk/sdk_69.htm
↑直接的にはこれだけど、他のページも見てみると良いよ。
0426418
2007/12/31(月) 19:52:13ありがとうございます
そのサンプルだとタブコントロールの作成自体が自前だったので多少混乱しましたが
GetDlgItem()でリソースエディタで作ったタブのハンドルを取得する事で
項目追加については解決しました
そちらのソースを見た感じだとタブ用のウィンドウの上に後からボタンを作っているようなのですが、
リソースエディタ上でタブの上に見えるようにボタンを配置し、それを表示非表示で切り替えたり
する事はできないのでしょうか?
手動で作るか、別のダイアログを固定位置の子ウィンドウとして呼び出すとかしかないでしょうか
0427デフォルトの名無しさん
2007/12/31(月) 20:13:34ダイアログエディタが混雑するぜ。
0428デフォルトの名無しさん
2008/01/01(火) 14:40:45特にC言語やC++言語の標準ライブラリの調べにくさはC++Builderのヘルプの比ではない。
0429418
2008/01/01(火) 15:17:20なんとか実装できました
どうもありがとうございました
0430デフォルトの名無しさん
2008/01/01(火) 22:07:34throw "あいうえお";
みたいな記述を良く見るのですが、これはどういう意味なのでしょうか?
プログラムを実行させるとランタイムエラーメッセージが出て処理が止まるのはいいのですが
たとえば配布したプログラムでこのthrowが呼び出されてしまったときに、
この"あいうえお"という文字列は、何をもって確認するのですか?
0431デフォルトの名無しさん
2008/01/01(火) 22:09:12VC以前の問題。
throwって知ってる?
0432デフォルトの名無しさん
2008/01/01(火) 22:09:43char*を投げるのはあんまし感心しないけど。
0433デフォルトの名無しさん
2008/01/01(火) 22:15:06この場合どういう効果があるのでしょうか
ランタイムエラーメッセージが出る時にthrowで送られた情報が
そのメッセージの中で見られるのかと思ったのですが、見られないのですか?
0434デフォルトの名無しさん
2008/01/01(火) 22:16:34当然の如くVCには全く関係ないから
0435デフォルトの名無しさん
2008/01/01(火) 22:26:20ユーザオブジェクトを投げられたら、いずれにせよランタイムは
情報を出すことが出来ないからなー。
0436デフォルトの名無しさん
2008/01/01(火) 22:36:150437デフォルトの名無しさん
2008/01/02(水) 09:12:15わかる方お願いします。ヒントだけでも結構です。
0438デフォルトの名無しさん
2008/01/02(水) 11:37:220439デフォルトの名無しさん
2008/01/02(水) 11:40:09>There is no function you can call to determine whether the workstation is locked
0440デフォルトの名無しさん
2008/01/02(水) 15:38:520441デフォルトの名無しさん
2008/01/02(水) 15:41:36誰が作って誰が使うかによってかわるし、こうしろという決まりごとはないよ。
0442デフォルトの名無しさん
2008/01/02(水) 22:58:47void hoge() throw()
見たいなのじゃないの?
C++FAQ第二版で例文がそう記述されてて、
試してみたら(コンパイラに言われたんだか誰かに言われたんだかネットで見たんだか定かでない)けど
「古い記述方法」
という感じだった。 凄くうろ覚えでゴメン。
0443デフォルトの名無しさん
2008/01/03(木) 05:48:25そう.それ.
例外仕様を頑張って記述したところで,例外仕様の部分って
関数の型としては扱われないし,何かつけてて意味あるのかなって.
0444デフォルトの名無しさん
2008/01/03(木) 17:20:05リソースの編集したいのだが、
RCの中から、そこいらのヘッダをインクルードしてるファイルだと
フリーソフトではエラーが出て読み込めない。
どうしたら良いですか?
あきらめたほうが良いですか?お金はびた一文も出しませんので
お金がかからない何か良い方法はないでしょうか?
0445デフォルトの名無しさん
2008/01/03(木) 17:20:42あきらめた方がいい
0446デフォルトの名無しさん
2008/01/03(木) 18:43:290447デフォルトの名無しさん
2008/01/03(木) 23:26:43をプロジェクトごとに指定することはあまりやらなくて,
あらかじめ用途ごとの vsprops ファイルを作っておいて
組み合わせて適用しているのですが,そうすると
プロジェクトごとに最初から指定されているオプションがうざいです.
デフォルトで全部「親から継承」に簡単にすることってできないんでしょうか?
0448デフォルトの名無しさん
2008/01/04(金) 21:16:05C++/CLIのStringクラスのCompare(ryメソッドでは、
完全一致は探すことができたのですが、部分一致を探し出すことができませんでした
Cのstrstr関数やC++STLのStringクラスのfindメソッドのような、
文字列から文字列を探すことのできる、C++/CLIのクラスメソッドはないのでしょうか?
0449デフォルトの名無しさん
2008/01/04(金) 21:42:44単にオーバーライドを見つけられていないだけな気もするけど、一応。
ファイルの内容が全てメモリに収まる程度という前提なら、
内容をSystem::Stringに全部押し込んだ後で、System::String.IndexOfか?
System::Text::RegularExpressions辺りで一気にやるほうが楽かもしれん。
0450449
2008/01/04(金) 21:44:220451448
2008/01/04(金) 22:20:11すぽーんと見落としてました・・お恥ずかしい
読み込むのはファイルの一部だけなので、IndexOfで大丈夫そうです
どうもありがとうございました
0452デフォルトの名無しさん
2008/01/05(土) 00:48:48int _tmain(int argc, _TCHAR* argv[])
{
_tprintf( _T( "testあいうえお" ) );
_gettch();
return 0;
}
というような感じでコードを書いたのですが、
abcまではDOS窓に表示されるんですが、あいうえおが表示されません
Unicodeだとどうすれば日本語も表示されるようになるのでしょうか?
ちなみにマルチバイト文字セットにすると上手く行きます
できるだけマルチバイトでもUnicodeでも正常動作するようにしたいのです
_Tで囲むことで期待通りの表示になるかと思ったのですが…
よろしくお願いします
0453デフォルトの名無しさん
2008/01/05(土) 00:51:400454デフォルトの名無しさん
2008/01/05(土) 00:54:21本当に表示されてるのはtestだけなんだな? その後に何も表示されてない?
0455デフォルトの名無しさん
2008/01/05(土) 00:56:57えーと、入力待ちのカーソルが、間隔を開けずにtestの真横に表示されます
文字化けしてでるとかもないです
0456デフォルトの名無しさん
2008/01/05(土) 00:57:000457デフォルトの名無しさん
2008/01/05(土) 01:26:48ありがとうございます。こんな感じでいいのでしょうか?
一応あいうえおの表示はされたのですが、何か弊害などはありますか?
int _tmain(int argc, _TCHAR* argv[])
{
_tsetlocale( LC_ALL, _T( "Japanese_Japan.932" ) );
_tprintf( _T( "testあいうえお" ) );
_gettch();
return 0;
}
0458デフォルトの名無しさん
2008/01/05(土) 02:29:07処理は全てFormクラス内のメソッドにまとめるものなのでしょうか?
WinAPIでのWindowsアプリケーション作成もしたことがないので、混乱しています・・
0459デフォルトの名無しさん
2008/01/05(土) 02:35:480460デフォルトの名無しさん
2008/01/05(土) 09:36:58そういうプログラムなら標準Cで作った方が汎用性が高いから
そんな見苦しいことやって喜んでるのはお前ぐらいだと思う
0461デフォルトの名無しさん
2008/01/05(土) 10:03:22もはや時代はユニコードだと思っていたのですが違うのですか?
0462デフォルトの名無しさん
2008/01/05(土) 10:17:10ウェブとか、多言語つかうならユニ
0463デフォルトの名無しさん
2008/01/05(土) 10:56:100464デフォルトの名無しさん
2008/01/05(土) 14:23:23もしくはそういうことは COM の規格の範囲外のことですか?
0465デフォルトの名無しさん
2008/01/05(土) 14:25:30Win16ではMBCS、Win32以降はUTF-16 (x86ならリトルエンディアン)。
0466デフォルトの名無しさん
2008/01/05(土) 14:57:05API でいえば hogehogeA と hogehogeW の話ですよね?
主要な COM コンポーネントでも二種類の
インターフェイスが用意されていると思ってたんですが,
そうではないのでどうしたものかなぁ,と.
しかしよく考えたらたとえば MSXML が XML 文書を
受け取るのも BSTR なわけで,その時は文字コードに
よらずなんでも受け取るのだから BSTR は文字コード
を限定しないなにか(32ビットで領域のサイズが
明示的に前置された何か)だと思うことにします.
0467デフォルトの名無しさん
2008/01/05(土) 17:56:23寝てたわ・・・
プログラムよりも、デフォルトで開くコンソールのコードページの問題だからねえ。
0468デフォルトの名無しさん
2008/01/06(日) 02:01:00ビットマップをrcに変換し
LoadBitmapでインスタンスハンドルを取得するところでエラーが出ちゃうんですが
正しい手順教えて下さい><
switch(msg){
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
hBmp = LoadBitmap(hInst, "IDB_BITMAP1");
GetObject(hBmp, (int)sizeof(BITMAP), &bmp_info);
w = bmp_info.bmWidth;
h = bmp_info.bmHeight;
hdc_mem = CreateCompatibleDC(hdc);
SelectObject(hdc_mem, hBmp);
BitBlt(hdc, 0, 0, w, h, hdc_mem, 0, 0, SRCCOPY); //描画
DeleteDC(hdc_mem);
DeleteObject(hBmp);
EndPaint(hWnd, &ps);
break;
C:\temp\a.c(102) : error C2065: 'hInst' : 定義されていない識別子です。
C:\temp\a.c(102) : warning C4047: 'function' : 間接参照のレベルが 'struct HINSTANCE__ *' と 'int ' で異なっています。
C:\temp\a.c(102) : warning C4024: 'LoadBitmapA' : の型が 1 の仮引数および実引数と異なります。
cl.exe の実行エラー
開発環境はVisualC++6.0です
0469デフォルトの名無しさん
2008/01/06(日) 02:21:40> C:\temp\a.c(102) : error C2065: 'hInst' : 定義されていない識別子です。
0470468
2008/01/06(日) 02:31:52hInstを宣言したらエラーが消えました。
でも画像が表示されない><
0471デフォルトの名無しさん
2008/01/06(日) 03:36:53サンプル丸写しして出直して来い
0472デフォルトの名無しさん
2008/01/06(日) 04:20:07たぶん、"IDB_BITMAP1" を MAKEINTRESOUCE(IDB_BITMAP1) にすればいいとは思うが・・・
0473デフォルトの名無しさん
2008/01/06(日) 06:24:14ググってもMFCとか他言語ばかりで・・
0474デフォルトの名無しさん
2008/01/06(日) 07:22:03hInstっつーのはそのアプリケーションのメイン関数 _tWinMain()の
引数で渡されているHINSTANCE型の引数のことだよ
これはそのアプリケーションに一つしかないものだから
グローバル変数にでも保持しておいて使えばいい
0475デフォルトの名無しさん
2008/01/06(日) 07:22:270476デフォルトの名無しさん
2008/01/06(日) 07:22:540477468
2008/01/06(日) 16:01:38サンプルまる写しで出来ないんです><
>>472さんのやりかたでやっても画面が真っ白のままでした><
プロジェクトフォルダの中身を覗いたらScript1.rcのサイズが2kbなんですけど
ちゃんとビットマップ画像入ってないのかと思ってダブルクリックしてみたところ
VisualC++が立ち上がって
Script1.rc
│
Bitmap
└IDB_BITMAP1
ってなってるんですけど問題無いですよね?
ちゃんと#include <windows.h>の下に
#include "resource.h"は書いてあるんです><
>>474さん
Cコンソールの時にやったコマンドライン引数みたいな解釈でいいですか?
猫本にはインスタンスハンドルとしか書いてなかったのでよくわからないまま読み進めてました><
0478デフォルトの名無しさん
2008/01/06(日) 16:28:57Debug Release問わずデバッガ無しで実行すると途端に
---------------------------
cppwin.exe - アプリケーション エラー
---------------------------
"0x00000000" の命令が "0x00000000" のメモリを参照しました。メモリが "read" になることはできませんでした。
プログラムを終了するには [OK] をクリックしてください
プログラムをデバッグするには [キャンセル] をクリックしてください
---------------------------
OK キャンセル
---------------------------
で落ちてしまいます。
どういう事なんでしょうか。自殺すればいいんでしょうか。
0479デフォルトの名無しさん
2008/01/06(日) 16:30:520480デフォルトの名無しさん
2008/01/06(日) 16:36:33もう2005が出てから2年以上経つんですから
デバッガなしだと表面化するバグがどういうものかくらいの情報はあるはずです。
教えてください。
0481デフォルトの名無しさん
2008/01/06(日) 16:38:01デバッガで落ちてそうな所を見つけるしかないんじゃね?
MFC使ってるのなら、AfxCheckMemoryとかが有効っぽいケースに見えるけどな。
0482デフォルトの名無しさん
2008/01/06(日) 16:39:33デバッガを疑いたい気持ちは痛いほどわかるが、デバッガのせいじゃないと思うよ。
0483デフォルトの名無しさん
2008/01/06(日) 16:40:50落ちそうな所も何もデバッガ付きならちゃんと意図したとおりに動いてくれるんですが・・・。
0484デフォルトの名無しさん
2008/01/06(日) 16:48:12例外ダイアログからデバッガを起動できるから、起きた場所を特定しよう
0485デフォルトの名無しさん
2008/01/06(日) 16:58:000486デフォルトの名無しさん
2008/01/06(日) 17:01:22hBmpはいくつだったんだよ
0ならいつまでたっても絵は出ないぞ
試しに>>468のまるまるコピーして
IDB_BITMAP1版(MAKEINTRESOURCE使用)と"IDB_BITMAP1"版どっちも
ビットマップ表示できてるけど
0487486
2008/01/06(日) 17:02:46一応念のため
0488デフォルトの名無しさん
2008/01/06(日) 17:47:29int *a;
a = NULL;
:
どっかでメモリ確保
:
if( a )
{
// aのメモリが確保されていた時の処理
}
とかやって落ちている気がするよ
デバッガ使うと何もしなくても変数が0初期化されてる事が多い
0489デフォルトの名無しさん
2008/01/06(日) 17:49:08a=NULLしたら正常動作するなw
>>488のa=NULLを飛ばしてる気がする
0490デフォルトの名無しさん
2008/01/06(日) 18:06:38初期化されてないのが正常動作です。
0491468
2008/01/06(日) 18:57:43Printf使えないから試行錯誤で頑張って見たけど
HBITMAP hBmp;
BITMAP bmp_info;
RECT rc;
int w, h;
char *szStr="a";
DRAWTEXTPARAMS dtp;
switch(msg){
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
hBmp = LoadBitmap(hInst, "MAKEINTRESOUCE(IDB_BITMAP1");
szStr = BITMAP.bmWidth; //hBmpの情報をszSTRに代入
SetTextColor(hdc, RGB(0, 0, 0));
//szStrの中身を表示
DrawTextEx(hdc,
szStr,
-1,
&rc,
DT_WORDBREAK | DT_EXPANDTABS | DT_TABSTOP,
&dtp);
(110) : error C2275: 'BITMAP' : typedef 識別子に、クラス メンバ アクセス演算子 (->) を使用しました。
よくわからないエラーが…変数の表示ってどうやるの?(´;ω;`)ブワッ
0492デフォルトの名無しさん
2008/01/06(日) 19:14:220493デフォルトの名無しさん
2008/01/06(日) 19:18:130494デフォルトの名無しさん
2008/01/06(日) 19:22:18hBmp = LoadBitmap(hInst, MAKEINTRESOUCE(IDB_BITMAP1));
こうな。
そんでコンパイル通る状態にして、この行の次にカーソル移して
F9押してF5押してとまったらhBmpの上にマウスのポインタ置いてみな
0495デフォルトの名無しさん
2008/01/06(日) 19:29:11あのさー、型名と変数名の違いぐらい勉強してからこいよ
BITMAP 型名
bmp_info 変数名
君ははっきり言って基本的な知識がなさすぎる
まずはコンソールでCの勉強から始めなさい
0496468
2008/01/06(日) 19:53:43ブレイクポイントは初めて聞いたのですぐに調べて
>>494さんのやり方で出来ました。マウスを載せたら型名と変数のHBITMAP hBmpが表示されて
エラー内容はa.obj : error LNK2001: 外部シンボル "_MAKEINTRESOUCE" は未解決です
Debug/a.exe : fatal error LNK1120: 外部参照 1 が未解決です。
って出ました><
>>495さん
半年前にやったCコンソールの本で構造体の部分読み返してみます><
0497デフォルトの名無しさん
2008/01/06(日) 19:55:23MAKEINTRESOURCE
こうね。
0498468
2008/01/06(日) 20:07:370499デフォルトの名無しさん
2008/01/06(日) 20:36:45そこで>>494
0500デフォルトの名無しさん
2008/01/06(日) 21:29:030501デフォルトの名無しさん
2008/01/07(月) 10:31:24タブキーや、スペースコードが →や・マークで表示されてしまう様になってしまいました。
何かのキーを触ったら偶然そういう設定になってしまったのですが、
戻し方が解りません。どなたか教えて下さい。
0502デフォルトの名無しさん
2008/01/07(月) 10:40:33超FAQだと思ったが、ここのテンプレはわからなかったので、、、
編集 - 詳細 - スペースの表示 (Ctrl+R, Ctrl+W) で
0504デフォルトの名無しさん
2008/01/07(月) 19:23:12WINVER not defined. Defaulting to 0x0502 (Windows Server 2003)
という warning が現れます。
出力ウインドウを見ていると、.cpp ファイルの時にはこれが現れ、
.c ファイルの時には自動的に WINVER を設定しないようで現れません。
どこでファイルタイプを判別して動作を変えているのでしょうか。
また、なぜこのような違いが出るようになっているのか教えてください。
0505デフォルトの名無しさん
2008/01/07(月) 20:08:050506デフォルトの名無しさん
2008/01/07(月) 21:11:230507デフォルトの名無しさん
2008/01/07(月) 21:13:32本買ったほうがいいんじゃないか。
0508デフォルトの名無しさん
2008/01/07(月) 21:22:05ぐぐればいくらでもあると思うが……
例えば、こんなのでいいのか?
tp://athomejp.com/goldfish/
0509デフォルトの名無しさん
2008/01/08(火) 00:37:110510デフォルトの名無しさん
2008/01/08(火) 00:45:230511デフォルトの名無しさん
2008/01/08(火) 00:48:290512デフォルトの名無しさん
2008/01/08(火) 04:23:400513デフォルトの名無しさん
2008/01/08(火) 04:50:560514デフォルトの名無しさん
2008/01/08(火) 06:46:022005年だよ
0515デフォルトの名無しさん
2008/01/08(火) 15:23:44作りたいのですがそのようなプログラムの作り方を解説するサイトってないでしょうか?
ググッてみたものの出てきませんでした。
当方『windowsサウンドプログラミング』の本を読んで、
そのまま出力するプログラムは出来ています(サンプルプログラムw)
環境VC++6.0
何か書いている途中にスレチな気がしてきましたがよろしくお願いします。
0516デフォルトの名無しさん
2008/01/08(火) 15:28:09DirectX使いたいのかな?
0517デフォルトの名無しさん
2008/01/08(火) 17:33:40その本にはWAVデータの詳細が載っているんじゃないかい?
どのデータが何を意味しているかさえわかれば、
あとはそのデータをいじってから出力すればいいだけだ
0518515
2008/01/08(火) 17:55:34レスありがとうございます。
SDKとは何でしょう?すいません無知もいいとこで…
DirectXを使ったほうが楽なのでしょうか?
>>517
レスありがとうございます。
それがあんまり載っていなくて、
というか私の勉強不足かも知れないんですが…
ど素人なもんでいじり方がどういじってよいやら…
0519デフォルトの名無しさん
2008/01/08(火) 17:59:370520デフォルトの名無しさん
2008/01/08(火) 18:04:57オプションのフォントと色を見てみたのですがそれらしい項目が見つからなくて。
0521デフォルトの名無しさん
2008/01/08(火) 18:50:23方程式書いて計算するだけ
0522デフォルトの名無しさん
2008/01/08(火) 21:12:04標準のエディタじゃ無理
0523デフォルトの名無しさん
2008/01/09(水) 08:16:34エディットコントロールへのD&Dが上手く行かなくて困っています。
MessageBox でテスト確認してみたら WM_DROPFILES メッセージを送ってないようなのですが、
これはサブクラス化するしか方法は無いのでしょうか・・・?
リストボックスでは出来てエディットボックスでは出来ないのは何故でしょうか・・・?
ご教授よろしくお願いします。
0524デフォルトの名無しさん
2008/01/09(水) 09:01:53リストボックスにドロップしたらファイル名
エディットボックスにドロップしたらファイルの内容を表示
みたいにやってるけど特に問題なく動いてる
0525523
2008/01/09(水) 10:06:21複数のコントロールでD&D使い分けてるのはDragQueryPoint使ってるのかな・・・。
一応CreateWindowExでWS_EX_ACCEPTFILES指定して、
D&Dの際にはカーソルも変わるんですが、上述の通りWM_DROPFILESで何も起きません。
ちなみに、どのコントロールがアクティブ状態でも共通キー処理したいために、
全てのコントロールを一つのプロシージャにサブクラス化しています。
当然、このプロシージャではWM_DROPFILES動作は出来ました。
(ただし、リストボックスで上手く行く他のソースではメインウィンドウプロシージャでWM_DROPFILES受け取ります)
0526デフォルトの名無しさん
2008/01/09(水) 11:35:080527デフォルトの名無しさん
2008/01/09(水) 12:35:07サブクラス化してもいいし、サブクラス化しなくてもいいし、
どれでもお好きなように
0528デフォルトの名無しさん
2008/01/09(水) 22:02:32(WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE + WS_CHILD | WS_VISIBLE | LBS_EXTENDEDSEL | WS_HSCROLL | WS_VSCROLL,)
親ウィンドウへ通知するスタイルを指定しなくても WM_DROPFILES メッセージが送られました。
逆に、リストボックスで上手く行く方のソースでエディットボックスを作って同様スタイルにしてもダメでした。
D&D可能にしたいエディットボックスは
WS_EX_ACCEPTFILES | WS_EX_CLIENTEDGE, + WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | WS_VSCROLL | WS_HSCROLL,
のようなスタイルで作成してます。
最初に書くべきことでしたが、環境は VC++ 6.0 です。リソースではなく一つずつCreateしてます。
エディットボックスとドラッグ ドロップでググって観たら似たような症状が幾つか観られたんですが、
サブクラス化以外でリストボックスのように親ウィンドウでの処理という仕方がどうしても見つけられませんでした。
0529デフォルトの名無しさん
2008/01/09(水) 22:22:19http://www5.plala.or.jp/atata/com/chap7.html
0530デフォルトの名無しさん
2008/01/09(水) 23:59:080531デフォルトの名無しさん
2008/01/10(木) 00:00:52C言語でファイルを保存するととき(fprintfでいいんですが)
testというフォルダに保存したいのですがどうすればよろしいでしょうか?
フォルダはあります。
(例えば、sample,txtというファイル)
PCの環境はwindowsです
よろしくお願いします
0532デフォルトの名無しさん
2008/01/10(木) 00:04:43ただしアドレスの\は\\にすること
0533デフォルトの名無しさん
2008/01/10(木) 00:07:58みたいな形ですか?
一度試してみます
0534デフォルトの名無しさん
2008/01/10(木) 00:11:50VCやったことないけど試してみて><
0535デフォルトの名無しさん
2008/01/10(木) 00:14:19test\\sample.txtみたいな形でやれば上手いことできました。
ありがとうございます
0536デフォルトの名無しさん
2008/01/11(金) 05:39:28リンク中に 「fatal error C1001: コンパイラで内部エラーが発生しました。」 というエラーが出るので困ってます。
__m128 x = _mm_set_ps1(y);
と書かれたところが問題のようです。でも、Debugビルドだと問題なくコンパイルできます。Releaseの場合のみエラーが出てきます。
__m128 x = {y, y, y, y};
とするとReleaseでもコンパイルできたりします。
原因がまったくわからないのでお手上げなんですが・・・
0537デフォルトの名無しさん
2008/01/11(金) 08:34:110538デフォルトの名無しさん
2008/01/11(金) 21:15:58DebugとReleaseで_mm_set_ps1がコンパイルエラーになるなら_mm_set_ps1の定義見てみては?
俺は環境がないから確認できない・・・
関係ないかもしれないけど↓みたいな話もあるみたいね。
http://richa850.hp.infoseek.co.jp/programming/cpp07.html
0539デフォルトの名無しさん
2008/01/12(土) 12:33:541つのソリューション内に複数のプロジェクトがあり、ソリューション内の
あるプロジェクト(コンソールアプリ)から同ソリューション内の他のプロジェクトをインクルードディレクトリに指定する場合
どのようにすればスマートですか?
プロジェクトをコンソールアプリで作成すると構成プロパティのツリー内に
「C/C++」という項目が出てこない為、推移的に「追加のインクルードディレクトリ」という項目もありませんでした
コマンドラインの-I ../hogeを使うのかなと思いましたけど、どこに追加すればいいのやらで
初歩的過ぎで申し訳ありませんがご教授の程お願いします。
0540デフォルトの名無しさん
2008/01/12(土) 12:46:45タスクトレイのアイコンをダブルクリックした際に、ウィンドウを表示、ウィンドウをトレイへ格納の動作をつけたいと思うのですが、
処理が分かりません。
どーいった関数、処理の流れになるのか教えて下さい。
また、参考になるサイト等もあれば教えて頂きたいと思います。宜しくお願いします。
0541デフォルトの名無しさん
2008/01/12(土) 13:23:500542デフォルトの名無しさん
2008/01/12(土) 13:27:57・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
0543デフォルトの名無しさん
2008/01/12(土) 15:22:18[ファイル]-[新規作成]-[プロジェクト]
[Visual C++]-[全般]
空のプロジェクト
でコンソールアプリを作成してるけど
[プロジェクト]-[xxx のプロパティ]
[構成プロパティ]-[C/C++]-[全般]
追加のインクルードディレクトリ
が見えてる
0544539
2008/01/12(土) 16:44:51資料を見ながら作っていたのですがその手順の通りだと
あたかも最初から表示されているようにかかれてましたがソースファイルが1つも無いプロジェクトには
どうやらC/C++の項目が表示されないようになっているようです。
1つ適当にファイルを追加した後表示される事が確認できました。
有り難うございました。
0545デフォルトの名無しさん
2008/01/13(日) 20:16:06キーワードもうまく見つけられないんだろうな
0546デフォルトの名無しさん
2008/01/13(日) 21:41:49デバッグ時の出力ウィンドウに
cppwin.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a5fd54 を読み込み中にアクセス違反が発生しました。
cppwin.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a5fd54 を読み込み中にアクセス違反が発生しました。
と表れるんですが、どうすればアクセス違反が起こらないように終了できるんでしょうか。
0547デフォルトの名無しさん
2008/01/14(月) 04:42:22子供に自殺要求を出して、その死水を取ってから自殺してください。
0548デフォルトの名無しさん
2008/01/14(月) 14:42:18ソースコード中に
using namespace System
と書けばいいのでしょうか?
0549デフォルトの名無しさん
2008/01/14(月) 14:49:31isnan()でよければそんなことを書く必要はありませんが。
0550デフォルトの名無しさん
2008/01/14(月) 14:59:32どうもありがとうございます
デバッグかけるとソースコード中の
track_box.angle = !isnan(theta) ? (float) -theta : 0;
のところで、
error C3861: 'isnan': 識別子が見つかりませんでした
と表示されてしまいます…コードがいけないのでしょうか?
0551デフォルトの名無しさん
2008/01/14(月) 15:03:410552デフォルトの名無しさん
2008/01/14(月) 15:10:46うまくいきました!ありがとうございました
0553デフォルトの名無しさん
2008/01/14(月) 17:13:210554デフォルトの名無しさん
2008/01/14(月) 22:31:410555デフォルトの名無しさん
2008/01/15(火) 09:00:58メモリ破壊を修正
0556デフォルトの名無しさん
2008/01/16(水) 21:33:58プログラムは動くのですが、終了時に
スレッド 'Win32 スレッド' (0x654) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x98) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x424) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x2e0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x65c) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4c0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4d8) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4b0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4a0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x23c) はコード 0 (0x0) で終了しました。
と大量に同じようなメッセージが出力されます。
これは異常なのでしょうか?
0557デフォルトの名無しさん
2008/01/16(水) 21:35:540558デフォルトの名無しさん
2008/01/16(水) 21:37:460559デフォルトの名無しさん
2008/01/16(水) 21:47:090560デフォルトの名無しさん
2008/01/16(水) 21:56:08スレッドを作った覚えはあるかどうか。
心当たりが無ければ、実行中に中断させて、デバッグ-ウインドウ−スレッドでスレッドの一覧が出るので、何のスレッドか調べてみよう。
0561556
2008/01/16(水) 21:57:04//パフォーマンスの作成
CoCreateInstance(CLSID_DirectMusicPerformance, NULL,
CLSCTX_INPROC, IID_IDirectMusicPerformance8,
(void**)&g_pPerformance );
とするとエラーが大量に出てしまうようです。
おかしな所あるでしょうか?指摘お願いします。
0562デフォルトの名無しさん
2008/01/16(水) 21:58:410563デフォルトの名無しさん
2008/01/17(木) 00:33:52超えられない壁がある
0564デフォルトの名無しさん
2008/01/17(木) 12:19:170565デフォルトの名無しさん
2008/01/18(金) 14:39:11画像をランダムに表示させたいのですが、どうすればいいでしょうか?
0566デフォルトの名無しさん
2008/01/18(金) 14:56:330567デフォルトの名無しさん
2008/01/18(金) 15:01:230568565
2008/01/18(金) 21:42:25表示させる枚数も少ないので…。
ご迷惑をおかけしました。
0569デフォルトの名無しさん
2008/01/18(金) 21:44:470570デフォルトの名無しさん
2008/01/18(金) 23:29:093D空間での単位ベクトルの回転ってどうしたらいいですか?
回転といったら行列を掛ければいいとおもったんですけど、ベクトルは3元なので
どうしたらよいかわかりません。
0571デフォルトの名無しさん
2008/01/18(金) 23:36:200572デフォルトの名無しさん
2008/01/19(土) 00:50:34どこが自己解決だよカス
0573デフォルトの名無しさん
2008/01/19(土) 00:53:03・単位マトリクスを用意
・用意したマトリクスの平行移動成分にベクトル値を入れる
・回転マトリクスと乗算する
0574デフォルトの名無しさん
2008/01/19(土) 01:59:59やってみたら出来ました。
ありがとうございます。
しかし、z軸の+の方からみた時は上手く動くのですが、
逆を向いた時に上下が反対になってしまいます。
D3DXMatrixRotationYawPitchRoll(&m_mat,
D3DXToRadian(yaw),
D3DXToRadian(pitch),
D3DXToRadian(roll) );
として回転行列作っているんですが、pitchの回転が上手くいきません。
0575デフォルトの名無しさん
2008/01/19(土) 03:51:03ここはVCのスレだ
0576デフォルトの名無しさん
2008/01/19(土) 11:55:55#define _CRT_SECURE_NO_DEPRECATE 1
ってやっても出たまんまなんですけど、
なぜだか分かりますか?
(#pragma warning(disable:4996)は効きます)
0577デフォルトの名無しさん
2008/01/19(土) 12:05:540578デフォルトの名無しさん
2008/01/19(土) 12:13:16ありがとうございました。
解決しました。
自作のヘッダーの方では、ライブラリのinclude前に
あったのですが、mainの方ではそのヘッダーをライブラリよりも
あとから呼んでました。
もしかして、
このdefineはmainのあるcppの頭にだけ
書けばよいものなのでしょうか?
0579デフォルトの名無しさん
2008/01/19(土) 13:30:280580デフォルトの名無しさん
2008/01/19(土) 14:23:170581デフォルトの名無しさん
2008/01/19(土) 14:56:38[ファイル]-[追加]-[新しいプロジェクト]
[Visual C++]-[CLR]
Windows フォーム アプリケーション
でプロジェクトを作成すると使えるみたい
0582デフォルトの名無しさん
2008/01/19(土) 15:00:170583デフォルトの名無しさん
2008/01/19(土) 18:30:45newで何かを作ったとします。
(こんな感じ?)
type* tmp = new type[num];。
で、その何かは(何らかの処理後)
その演算子定義のreturnで使いたいとします。
return CLASS_X(tmp_s);
このとき、tmpのdeleteはいったい
どこで行ったらよいのでしょうか?
(deleteなしで作成後、実行しても動いてはいる?
のですが、たまたまのような気がして心配なので)
0584デフォルトの名無しさん
2008/01/19(土) 18:32:07誤:return CLASS_X(tmp_s);
正:return CLASS_X(tmp);
0585デフォルトの名無しさん
2008/01/19(土) 18:44:40tmpの型をboost::scoped_array<type>にでもすればいい。
0586デフォルトの名無しさん
2008/01/19(土) 18:59:11CLASS_X()の戻り値を変数に保持してからtmpを解放
で、returnで保持した変数を返せばいい
0587デフォルトの名無しさん
2008/01/19(土) 19:00:190588デフォルトの名無しさん
2008/01/19(土) 19:02:32スタンダード以上ならついてる
0589デフォルトの名無しさん
2008/01/19(土) 19:12:290590デフォルトの名無しさん
2008/01/19(土) 19:31:40できればboost以外でお願いしたいのですが。
0591デフォルトの名無しさん
2008/01/19(土) 19:34:09operator=()の中でnewする必要がある状態ってのがよく分からない。
自動変数の値返しじゃダメなのか?
ソース提示可能なら提示よろ。
deleteしなかった場合は587の言うように当然メモリリークしていくぞ
0592デフォルトの名無しさん
2008/01/19(土) 19:46:230593デフォルトの名無しさん
2008/01/19(土) 19:47:08std::vector<type>
&tmp[0]のようにすれば、先頭要素へのポインタも得られる。
0594583
2008/01/19(土) 19:48:07ありがとうございます。
簡単に言えば文字列の足し算なんですけど、
newしないでできるのでしょうか。
(当方初心者です)
friend Mojiretsu operator+=(const Mojiretsu& moji1, const Mojiretsu& moji2) { // +演算子
int tmp_nagasa = moji1.nagasa + moji2.nagasa ;
char* tmp_moji = new char[tmp_nagasa+1];
mojicpy(tmp_moji,moji1.s);
mojicat(tmp_moji,moji2.s);
return Mojiretsu(tmp_moji);
}
0595583
2008/01/19(土) 19:51:06ありがとうございます。(前後してすいません)
こんな感じでしょうか。
friend Mojiretsu operator+=(const Mojiretsu& moji1, const Mojiretsu& moji2) { // +演算子
int tmp_nagasa = moji1.nagasa + moji2.nagasa ;
char* tmp_moji = new char[tmp_nagasa+1];
mojicpy(tmp_moji,moji1.s);
mojicat(tmp_moji,moji2.s);
char* tmp2_moji = tmp_moji;
delete tmp_moji;
return Mojiretsu(tmp2_moji);
}
一応、動きましたが、tmp2_mojiの先が解放されちゃってて
これも心配なんですが、大丈夫なのでしょうか。
0596583
2008/01/19(土) 19:54:04正:mojicpy、mojicat
誤:strcpy、strcat
0597デフォルトの名無しさん
2008/01/19(土) 19:55:17責めて、C++で鬱病から逃れたいんですが
0598583
2008/01/19(土) 19:59:39すいません、この質問が終わったらよそに行きます。
見逃してください。
0599デフォルトの名無しさん
2008/01/19(土) 19:59:44VCスレ
0600デフォルトの名無しさん
2008/01/19(土) 20:00:57見苦しいから汚いコード貼らないでくれる?
0601591
2008/01/19(土) 20:05:37>>598
C++相談室 part60
http://pc11.2ch.net/test/read.cgi/tech/1200044614
あたりで同じ質問してくれ。
0602583
2008/01/19(土) 20:08:15すいませんです。
そちらに行きます。
お邪魔いたしました。
0603デフォルトの名無しさん
2008/01/19(土) 20:30:050604デフォルトの名無しさん
2008/01/19(土) 23:23:32どっかに、正誤表とかはないんですか?
0605デフォルトの名無しさん
2008/01/20(日) 01:25:08PCに標準で乗ってたら面白いけどな.
0606デフォルトの名無しさん
2008/01/20(日) 09:45:08ここで聞いてどうするw
出版社に聞け
0607デフォルトの名無しさん
2008/01/20(日) 12:10:01新しくトップにウィンドウ(タイトルバー無し)をポップアップして、
そこにテキストを表示するというものなのですが、
一定以上の大きさを制限するために、一旦デバイスコンテキストに描画したものをStretchしたいのですが、
それ以前にCreateCompatibleDCでメモリデバイスコンテキストにDrawTextしてから
BitBltでウィンドウにそのままSRCCOPYしても真っ白なままです。
hDC = GetDC(hWnd);
hMemDC = CreateCompatibleDC(hDC);
GetClientRect(hWnd);
DrawText(hMemDC, szText, -1, &rec, DT_WORDBREAK);
BitBlt(hMemDC, 0, 0, rec.right, rec.bottom, hDC, 0, 0, SRCCOPY);
のような感じで、取り敢えずウィンドウの大きさそのままに描画してもダメでした。
これが DrawText(hDC, szText, -1, &rec, DT_WORDBREAK); に置き換えると、ちゃんと描画されます。
プロポーショナルフォントを使っているので、ウィンドウサイズに合わせてポイントを変えるとずれてしまうので、
設定したフォントのまま縮小出来れば、、と試行錯誤してますが、デバイスコンテキストの描画の時点で止まってしまってます。
助言どうかよろしくお願いします。
0608607
2008/01/20(日) 12:12:20>BitBlt(hMemDC, 0, 0, rec.right, rec.bottom, hDC, 0, 0, SRCCOPY);
→BitBlt(hDC, 0, 0, rec.right, rec.bottom, hMemDC, 0, 0, SRCCOPY);
0609デフォルトの名無しさん
2008/01/20(日) 12:29:26メモリDCはビットマップを割り当てないとまともに使えない。
0610デフォルトの名無しさん
2008/01/20(日) 16:37:280611デフォルトの名無しさん
2008/01/20(日) 16:40:490612デフォルトの名無しさん
2008/01/20(日) 16:47:11いっぺあってどれがどれやらワケワカメなんだよボケェ
体系的に整理されていないと頭にインプットされねーんだよウンコ
0613デフォルトの名無しさん
2008/01/20(日) 16:52:280614デフォルトの名無しさん
2008/01/20(日) 17:00:350615デフォルトの名無しさん
2008/01/20(日) 17:09:27オナ・・・というのは置いといて
Hello world を表示だな
0616デフォルトの名無しさん
2008/01/20(日) 17:10:33コーヒーを用意し
服を脱ぎ
コーヒーに塩を入れ
裸体のまま一気に飲む
0617デフォルトの名無しさん
2008/01/20(日) 17:16:28void main()
{
printf( "Hello world!!\n" );
}
これを動かしてみ?
できるかな?
できるかな?
0618デフォルトの名無しさん
2008/01/20(日) 17:25:46なんで手に入れたんだよ
ワレズか?
違法だからやめとけお勧めしないから違法なんだよ
0619デフォルトの名無しさん
2008/01/20(日) 17:47:26更に調べてみたら、どうにか作りたい形に近づきました。
hBmp = CreateCompatibleBitmap(hMemDC, rec.right, rec.bottom);
SelectObject(hMemDC, hBmp);
のようにしてから、DrawText, StretchBltをhMemDCに出力したところ、反映されたのですが、
テキストの埋まってない余白部分が黒くなってしまいます。
HBITMAPやCreateCompatibleBitmapで調べてるのですが、どうも背景を白く塗りつぶす事が出来ず・・・。
SelectObject(hMemDC, hBmp);
に関してはメモリデバイスコンテキストとBITMAP領域をリンクした状態にするという感じでしょうか・・・?
0620デフォルトの名無しさん
2008/01/20(日) 18:40:280621デフォルトの名無しさん
2008/01/20(日) 18:47:16DrawText()とか使うなら、SetBkColor()やSetBkMode()を覚えましょう。
0622デフォルトの名無しさん
2008/01/21(月) 00:46:43http://mori.eco.to/
0623デフォルトの名無しさん
2008/01/21(月) 02:37:57↓
========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========
リビルドがすべて正常に完了しました
↓
デバッグする
↓
ダイアログで
「プログラム×××.exeは開始できませんでした。」
と表示され、デバッグできません。
何のエラーメッセージも表示されないのですが
心当たりのある方いますか?
0624619
2008/01/21(月) 04:30:52レスどうもです。SetBkColorは書き忘れただけで、書いてました。が、ダメでした。
FillRectは完全に盲点でした。。存在すら知らなかったもので、試した所、上手く行きました。
本来はマスクかけたりとか色々やるべきなのかもしれませんが、
取り敢えずテキストを白背景に黒で表示という目的は達する事が出来、ありがとうございました。
0625デフォルトの名無しさん
2008/01/21(月) 10:23:25タスクトレイのアイコンから最小化、元のサイズの処理をしているんですが、
最小化は
ShowWindow(hWnd,SW_MINIMIZE);
ShowWindow(hWnd,SW_HIDE);
で、出来るんですが、下のサイズの処理をした時に、ウィンドウがアクティブにならず、他のものに隠れて後ろに表示されてしまいます。
処理は
ShowWindow(hWnd,SW_RESTORE);
ShowWindow(hWnd,SW_SHOW);
と書いているんですが、これのどこがいけないんでしょうか?
0626デフォルトの名無しさん
2008/01/21(月) 10:26:15まあ、SetForegroundWindowを併用するのが確実かなあ
0627デフォルトの名無しさん
2008/01/21(月) 10:48:47レスありがとうございます。
一応、SetForegroundWindowやSetWindowPosを使って最前面に表示する事が可能なのは確認しましたが、
普通のウィンドウとは動作が違っちゃうんですね。
上記のものだと、関数が発行された時は確かにアクティブなんですが、そのあと後ろのウィンドウを消したりすると、
自分のプログラムが最背面になってしまいます。
自分の作ったウィンドウをmy、その他のウィンドウA、Bとあるとすると、
アクティブ順位が1:A、2:Bの状態から1:my、2:A、3:Bになり、AやBを最小化すると、
1:A(B)、2:myになってしまいます。何故か分かりますか?
0628デフォルトの名無しさん
2008/01/21(月) 11:05:56dllを扱うには動的リンクと静的リンクがあるというところまではわかり、とりあえず動的リンクで試そうとしているんですがどうにもわかりません。
かなり低脳なので申し訳ないのですが、解決法を教えてください。
[ソース]
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
typedef int(__cdecl* _gcjDbLoad)(char *, int);
HINSTANCE hDll = LoadLibrary("geocoderja.dll");
int func = (int)GetProcAddress(hDll, "gcjDbLoad");
char *path = "C:/Documents";
int loadLevel = 4;
int retCode = func( path, loadLevel
FreeLibrary(hDll);
return 0;
}
[エラー]
------ ビルド開始: プロジェクト: geocoderja, 構成: Debug Win32 ------
コンパイルしています...
geocoderja.cpp
c:\documents and settings\de\デスクトップ\geocoderja\geocoderja\geocoderja.cpp(16) : error C2064: 2 引数を取り込む関数には評価されません。
ビルドログは "file://c:\Documents and Settings\DE\デスクトップ\geocoderja\geocoderja\Debug\BuildLog.htm" に保存されました。
geocoderja - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
0629デフォルトの名無しさん
2008/01/21(月) 11:08:04SW_SHOWNORMAL とか
0630デフォルトの名無しさん
2008/01/21(月) 11:14:370631628
2008/01/21(月) 11:16:12早速レスありがとうございます。
SW_SHOWNORMAL??
動的リンクのサンプルを見ながらちょこちょこいじってきたんでよくわかりません。
すみません・・
0632デフォルトの名無しさん
2008/01/21(月) 11:20:43イミフメイ
0633デフォルトの名無しさん
2008/01/21(月) 11:21:57何を聞いてるの?
もともと間違いはあちこちあるけど、そのエラーは
>int retCode = func( path, loadLevel
この行が途中までしか書いてないから出るんだよ。
0634デフォルトの名無しさん
2008/01/21(月) 11:22:13ShowWindow()の引数だよ
それ一つあればSW_RESTOREもSW_SHOWもいらない
0635デフォルトの名無しさん
2008/01/21(月) 11:22:32geocoderのことは知らないが
> typedef int(__cdecl* _gcjDbLoad)(char *, int);
↑のように書いたのなら
>int func = (int)GetProcAddress(hDll, "gcjDbLoad");
の行は
_gcjDbLoad func = (_gcjDbLoad)GetProcAddress(hDll, "gcjDbLoad");
と書かないと意味無くないか?
>>631
629-630はその前の質問に対するものだろ。
0636628
2008/01/21(月) 11:28:52[ソース]
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
typedef int(__cdecl* _gcjDbLoad)(char *, int);
HINSTANCE hDll = LoadLibrary("geocoderja.dll");
int func = (int)GetProcAddress(hDll, "gcjDbLoad");
char *path = "C:/Documents";
int loadLevel = 4;
int retCode = func( path, loadLevel ); //エラーが出てる行
FreeLibrary(hDll);
return 0;
}
[エラー]
c:\documents and settings\de\デスクトップ\geocoderja\geocoderja\geocoderja.cpp(13) : error C2064: 2 引数を取り込む関数には評価されません。
>>632
その行が意味もわからず見よう見まねで書いたのでよくわからないんです・・
>>634
ShowWindow()は使ってないのですが、関連があるんですか?無知ですみません・・
0637デフォルトの名無しさん
2008/01/21(月) 11:31:49俺が悪かった
ShowWindowは君の質問とは一切関係ないw
0638635
2008/01/21(月) 11:33:36>int retCode = func( path, loadLevel ); //エラーが出てる行
エラーの出てるのはその行だろうけど
原因は635で書いたところにあると思うよ。
意味が分からないなら「関数ポインタ」について調べてみ。
0639628
2008/01/21(月) 11:42:21完全に勘違いしてました。すみません。
>>635
635さんの言うように
int func = (int)GetProcAddress(hDll, "gcjDbLoad");
を
_gcjDbLoad func = (_gcjDbLoad)GetProcAddress(hDll, "gcjDbLoad");
にするとうまくビルドできました!
関数gcjDbLoadも使えているようです。
ありがとうございます!
>>638
とりあえず動作するようにはなったみたいなのでいろいろと調べてみます。
ありがとうございます!
0640デフォルトの名無しさん
2008/01/21(月) 12:19:15ShowWindow(hWnd,SW_SHOWNORMAL);
でも、>>627に書いた通りの動作になってしまいます^^;
ShowWindow(hWnd,SW_SHOWNORMAL);
SetForegroundWindow(hWnd);
でも同じです。
0641デフォルトの名無しさん
2008/01/21(月) 12:28:490642デフォルトの名無しさん
2008/01/21(月) 13:49:08もうちょっと試行錯誤してみます。ありがとうございました。
0643デフォルトの名無しさん
2008/01/21(月) 17:45:19どっかでアホな事やってるんだろう
0644デフォルトの名無しさん
2008/01/21(月) 20:47:59変な流れのネタスレしかないお。
0645デフォルトの名無しさん
2008/01/21(月) 22:42:250646デフォルトの名無しさん
2008/01/22(火) 01:09:200647デフォルトの名無しさん
2008/01/22(火) 05:14:22サイトが充実してるから2ちゃんでやらんでいいやろ
0648名無しさん@ゴーゴーゴーゴー!
2008/01/22(火) 10:08:57コンパイルオプションにdefineを追加するのはどうやったらいいのでしょうか。
#define _CRT_SECURE_NO_DEPRECATE 1
#pragma warning(disable:4312)
#pragma warning(disable:4996)
上記のをソースに書かず、オプションに追加したいんですが、
プロジェクト→〜のプロパティ→C/C++→コマンドラインの中に書くのでは違うのでしょうか?
どこに、どう書いたらいいのか分かりません。
分かる方お願いします。
0649デフォルトの名無しさん
2008/01/22(火) 10:21:31コマンドラインに書いてもいいけど、VC++でやるなら普通は
プロパティのC/C++ - プリプロセッサの「プリプロセッサの定義」
0650デフォルトの名無しさん
2008/01/22(火) 10:23:340651デフォルトの名無しさん
2008/01/22(火) 10:48:290652デフォルトの名無しさん
2008/01/22(火) 13:18:080653デフォルトの名無しさん
2008/01/22(火) 14:42:410654デフォルトの名無しさん
2008/01/22(火) 14:52:150655デフォルトの名無しさん
2008/01/23(水) 01:42:39Visual Studio上でデバッグ起動することはできるんですが、
使ってる画像などを含めて、他のPCで動かすためのexeファイルを作るには
どうすればいいんでしょうか?
解説してるサイトなどあったら、教えてもらえませんか。
0656デフォルトの名無しさん
2008/01/23(水) 07:03:540657デフォルトの名無しさん
2008/01/23(水) 09:39:250658デフォルトの名無しさん
2008/01/23(水) 10:12:49Debugフォルダにexeができてました。
画像を同じフォルダに入れたら動きました。
>>657
インストーラの作り方もできれば知りたいです。
exeファイルにアイコン画像をつける方法とかも。
0659デフォルトの名無しさん
2008/01/23(水) 10:42:290660デフォルトの名無しさん
2008/01/23(水) 15:08:160661デフォルトの名無しさん
2008/01/23(水) 15:22:03?????????????????????????????????????????????
0662デフォルトの名無しさん
2008/01/23(水) 16:25:10RGB情報をカメラごとの配列に入れて画像処理で用いたいのですが、なかなかうまくいきません。
どのようにすればいいか、ご教示願えませんでしょうか。
0663デフォルトの名無しさん
2008/01/23(水) 16:26:45DirectShowと戦うスレ Part 2
http://pc11.2ch.net/test/read.cgi/tech/1162913156/
ここの誤爆?
0664http://p1062-ipbf4007marunouchi.tokyo.ocn.ne.jp.2ch.net/
2008/01/23(水) 16:31:200667デフォルトの名無しさん
2008/01/24(木) 19:54:53CFormViewにリストコントロールを配置しています
リストコントロールの幅や高さ等を取得したいのですがうまくいきません
コントロールのサイズを取得する方法を教えてください
0668デフォルトの名無しさん
2008/01/24(木) 20:13:280669デフォルトの名無しさん
2008/01/25(金) 13:28:26下記のようなコーディングで問題ないでしょうか?
//VARIANTからCString
CString hoge = newValue.bstrVal;
//CStringからVARIANT
CString hoge = "hoge";
vaResult.vt = VT_BSTR;
vaResult.bstrVal = hoge.AllocSysString();
0670デフォルトの名無しさん
2008/01/25(金) 17:42:48単にCString hoge = newValueでいけるはず。
あと場合にもよるけど、CComVariant (ATL), COleVarinat(MFC)もよろしく。
0671デフォルトの名無しさん
2008/01/25(金) 20:59:51簡単な方法があれば、教えてください。現在は次の
方法でファイル名を変更しています。
(Visual C++6.0です。)
(1) プロジェクトからそのファイルをいったん除外する。
(FileViewでファイルを選択し[編集]→[削除])
(2) エクスプローラでファイル名を変更。
(3) そのファイルをプロジェクトへ再度追加する。
[プロジェクト]→[プロジェクトへ追加]→[ファイル]
0672デフォルトの名無しさん
2008/01/25(金) 21:10:10(1)の後、エクスプローラで操作しなくても、
(3)の追加時にファイル名変更すればいい。
0674デフォルトの名無しさん
2008/01/27(日) 00:37:17ShowCursor()関数は単純に表示のON/OFFを切り替えるものではない
表示カウンタという意味不明なカウンタを持ってるらしく
ON/OFF切り替えるには同じ回数だけtrueとfalseをセットする必要がある
氏ねよMS('A`)
0675デフォルトの名無しさん
2008/01/27(日) 00:40:02>Parameters bShow
>[in] Specifies whether the internal display counter is to be incremented or decremented.
>If bShow is TRUE, the display count is incremented by one.
>If bShow is FALSE, the display count is decremented by one.
>Remarks
>This function sets an internal display counter that determines
>whether the cursor should be displayed. The cursor is displayed
>only if the display count is greater than or equal to 0.
0676デフォルトの名無しさん
2008/01/27(日) 00:53:55とはいえ、自分で使うとしたらラッパ書いて単純トグルにしてしまいそうだけど。
0677デフォルトの名無しさん
2008/01/27(日) 02:53:52並ぶようですが、この順序を変更することはできるでしょうか?
Visual C++6.0です。
0678デフォルトの名無しさん
2008/01/27(日) 06:55:10VSとJaneDoeStyleとブラウザ開いたら重すぎてMSDNなんて見れない、というか見たくない。
0679デフォルトの名無しさん
2008/01/27(日) 09:54:300680デフォルトの名無しさん
2008/01/28(月) 09:41:50カウンタはあって当たり前の必須機能だったな。
今だとカーソル消すなんてよほどのことじゃないか?
0681デフォルトの名無しさん
2008/01/28(月) 10:42:37メモリが256MiBもあってCPUの速度も2GiHz超えしているという、
世界初のコンピュータとは比べ物にならないほどの高い性能を持ち合わせた俺のマシンが唸る!
0682デフォルトの名無しさん
2008/01/28(月) 16:27:12エロゲで数秒たったらカーソル消すのは必須機能だよ
0683デフォルトの名無しさん
2008/01/28(月) 16:33:52ウィンドウのカーソルを見えないやつに差し替えじゃあかんのかな?
ゲームは自前カーソルが多い気がするから、別の話か。
0684デフォルトの名無しさん
2008/01/30(水) 07:45:29コンパイル済み実行ファイルをテキストエディタ等で開くとエラー時に表示するメッセージや
読み込むファイル名がそのまま見えてしまいます
これはセキュリティ上よろしくないと思うのですが見えなくする方法はあるのでしょうか?
0685デフォルトの名無しさん
2008/01/30(水) 09:33:510686デフォルトの名無しさん
2008/01/30(水) 13:21:11まあ隠したいんならテキストを圧縮するなり文字コードに
無駄な数字を足すなりなんなりとすればいい
0687デフォルトの名無しさん
2008/01/30(水) 13:25:53今はネットで探せばたいてい見つかる
0688デフォルトの名無しさん
2008/01/30(水) 14:09:440689デフォルトの名無しさん
2008/01/30(水) 14:25:22どうせエラー時に表示するんなら隠す必要もないのでは?
あと開くファイル名なんてFilemonでも使えばすぐ分かる.
0690デフォルトの名無しさん
2008/01/30(水) 14:31:39あれは打ち込む人=プレーヤーだからなあw
0691デフォルトの名無しさん
2008/01/30(水) 15:05:570692デフォルトの名無しさん
2008/01/30(水) 17:25:170693デフォルトの名無しさん
2008/01/30(水) 17:29:26SIGINTのトラップのことなら、SetConsoleCtrlHandler
0694デフォルトの名無しさん
2008/01/30(水) 18:17:470695デフォルトの名無しさん
2008/01/30(水) 20:26:58気温 : ○○℃
湿度 : ○○%
風速 : ○○(m/s)
という複数行のパラメータを上書き表示するにはどのようにすれば宜しいのでしょうか?
一行だと"\r"を使ってできたのですが。。。
教えて君で申し訳ありません(>_<)
void show()
{
cout << "気温 : " << a << "\r" ;
cout << "湿度 : " << b << "\r" ;
cout << "風速 : " << c << "\r" ;
}
とすると全て上書きされて一行しか表示できませんでした・・・。
0696デフォルトの名無しさん
2008/01/30(水) 21:07:040697デフォルトの名無しさん
2008/01/30(水) 21:15:37もしくはAPI直呼び出しでもしないと駄目だと思う。
0698デフォルトの名無しさん
2008/01/30(水) 21:34:040699デフォルトの名無しさん
2008/01/31(木) 06:34:55Visual C++ 2008 Expressをインストールして、
mfcのプログラム(サンプルプログラム diblook)をビルドしたのですが、
afxwin.hが見つからないよエラーとなってしまいました。
2008 ExpressにはMFCがついていないんでしょうか?
0700デフォルトの名無しさん
2008/01/31(木) 06:35:240701デフォルトの名無しさん
2008/01/31(木) 16:19:25もしついてたから誰も有料のやつ買わないでしょ
0702デフォルトの名無しさん
2008/01/31(木) 16:20:53Expressにはついてないよ
もしついてたら誰も有料のやつ買わないでしょ
0703デフォルトの名無しさん
2008/01/31(木) 18:36:36レポート形式で、カラムヘッダにツールチップを表示したいのですが可能でしょうか?
可能であれば、やり方をお聞きしたいです。
よろしくお願いします。
VC.NET、MFC使用です。
0704デフォルトの名無しさん
2008/01/31(木) 19:47:30ありがとうございます。
言われてみればそうですね。商売にも使えるわけですから
どこの企業も買わなくなっちゃいますね。
仕方ないのでWin32 Apiでしこしこ書くことにします。
0705sage
2008/01/31(木) 23:16:08ある程度行数のある文字列をForm内に出力したいのですがどうしたらよいでしょうか?
イメージとしてはDOS窓みたいなものを作りたいのですが・・・どうかご教授お願いします。
0706デフォルトの名無しさん
2008/01/31(木) 23:34:400707デフォルトの名無しさん
2008/02/01(金) 15:10:08実行時の実行プライオリティ設定したいのですが、どの関数を使えばよいのでしょうか?
0708デフォルトの名無しさん
2008/02/01(金) 16:00:45もうこのさいだから C++/CLI でフォームアプリにしちゃいな!
0709デフォルトの名無しさん
2008/02/01(金) 18:01:55//winmm.libにリンクする
#pragma comment(lib,"winmm")
・・・
void CChildView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼び出します。
PlaySound("WinXP_Startup",NULL,SND_RESOURCE | SND_ASYNC | SND_LOOP);
CWnd::OnLButtonDown(nFlags, point);
}
PlaySound関数を使いたいのですが、上記のようにコーディングすると
error C2065: 'SND_RESOURCE' : 定義されていない識別子です。
error C2065: 'SND_ASYNC' : 定義されていない識別子です。
error C2065: 'SND_LOOP' : 定義されていない識別子です。
error C3861: 'PlaySound': 識別子が見つかりませんでした
とコンパイルエラーがでてしまいます。
どのようにすればエラーがでなくなるか、教えていただけないでしょうか。
0710デフォルトの名無しさん
2008/02/01(金) 18:16:35かな。
WIN32_LEAN_AND_MEANでもいいがMFCだとよくわからん
0711デフォルトの名無しさん
2008/02/01(金) 19:11:47SetPriorityClass( GetCurrentProcess(), REALTIME_PRIORITY_CLASS );
みたいな?
0712デフォルトの名無しさん
2008/02/01(金) 20:37:14プロセス単位なら、startコマンドのオプションでもいけるよ。
0713デフォルトの名無しさん
2008/02/02(土) 22:34:280714デフォルトの名無しさん
2008/02/02(土) 22:40:22http://ja.wikipedia.org/wiki/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29
0715デフォルトの名無しさん
2008/02/02(土) 23:04:36テンプレートの有用性が知りたければboostのソースを嫁。
0716デフォルトの名無しさん
2008/02/03(日) 01:08:22環境は、Visual c++ 2005 Express Editionです。
ビルドのエラーを解決できなくて困っています。
VCの使い方が間違っていることが原因っぽいのですが・・・
エラー
1>c:\program files\opencv\cxcore\include\cxtypes.h(212) : warning C4793: '__asm' : 関数 'int cvRound(double)' 用にネイティブ コードの生成が発生します
1> c:\program files\opencv\cxcore\include\cxtypes.h(205) : 'cvRound' の宣言を確認してください。
0717デフォルトの名無しさん
2008/02/03(日) 07:59:00Win32を使ってコンソール型のコマンドが完成したのですが、
やはり画面をつけてあげたいなと思っています。
Win32で画面を作るのは敷居が高そうなので(リソースエディタがないなど)
他によい方法があれば採用したいのですが、どんな仕組みがあるんでしょうか。
CLIってのがそうなのかな?心配しているのは、ランタイムパッケージやら
DLLをごっそりインストールすることにならないかなんです。
単純な機能のツールをネットで配布するんで、できれば身軽に、余分なものは
なしでいきたいんです。そんなわたしにぴったりの何かはあるんでしょうか?
長文失礼しました。
0718デフォルトの名無しさん
2008/02/03(日) 08:48:07それでも C++ から離れられない俺はどうすればいいですか?
boost::lambda でしょうか?
C++09 を待てばいいのでしょうか?
C# の yield とかもうらやますぃ.
LINQ は微妙.なれればいいんだろうな.
0719デフォルトの名無しさん
2008/02/03(日) 10:55:04画面はdelphi 6 personalで作ればおk
簡単に作れてランタイムもいらない。開発環境は無料。
0720デフォルトの名無しさん
2008/02/03(日) 13:44:01出力に
'aaa.exe': 'C:\WINDOWS\system32\XXX.dll' を読み込みました。シンボルが読み込まれていません。
というメッセージがたくさんでるんですが、これは何なんでしょうか?
ググると問題無いと書いてたんですが、できれば出ないようにしたいです。
0721デフォルトの名無しさん
2008/02/03(日) 14:16:520722デフォルトの名無しさん
2008/02/03(日) 15:37:30VisualStudio2005でコンパイルしたところ,
エラー 1 error C2143: 構文エラー : '{' が ':' の前にありません。 c:\program files\microsoft visual studio 8\vc\include\cmath 18
エラー 2 error C2059: 構文エラー : ':' c:\program files\microsoft visual studio 8\vc\include\cmath 18
といった無数のエラーが出ました.
ちなみにcmathはインクルードしておらず,
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<complex>
だけです.
どなたかアドバイス頂けませんでしょうか?
C/C++スレでも質問書いたのですが,
こっちのスレの方が適切なようでマルチポストさせて頂きました.
0723デフォルトの名無しさん
2008/02/03(日) 16:34:56cmathを直接includeしてないけれども
complexの中でcmathがincludeされてるからなぁ。
で、エラーの原因はその情報だけじゃ分からない。
C2143やC2059はエラー出力に表示されている箇所よりも
前の場所での構文ミスで出ることもあるから。
他の場所で'}'の閉じ忘れなんてのも原因になりうる。
もしかしたらとは思うが、拡張子が.cになっているんじゃないかな?
そうなら.cppに変えたらうまくいく可能性が高いな。
0724デフォルトの名無しさん
2008/02/03(日) 16:57:50該当のDLLをリンクからはずせば出なくなると思うけど
必要になったらまたリンクからはずせばいい
0725デフォルトの名無しさん
2008/02/03(日) 16:58:44必要になったらまたリンクからはずせばいい
→必要になったらまたリンクすればいい
0726デフォルトの名無しさん
2008/02/03(日) 17:03:310728デフォルトの名無しさん
2008/02/03(日) 17:18:29コンソールプロジェクトを作って放り込んでるんなら
stdafx.hをインクルードしないとダメかも
じゃなきゃプリコンパイル済みヘッダーを使用しないにするか
0729デフォルトの名無しさん
2008/02/03(日) 17:19:110730デフォルトの名無しさん
2008/02/03(日) 19:21:19それとも#ifndef HOGOHOGE_H_IS_INCLUDEDでしょうか?
0731デフォルトの名無しさん
2008/02/03(日) 20:03:200732デフォルトの名無しさん
2008/02/03(日) 20:21:31現在は殆どのコンパイラで通るようになっている。gccも。
今は、対応を気にせずに使える段階に入ってるんじゃないかな。
0733デフォルトの名無しさん
2008/02/03(日) 20:27:25詳しく解説しているページとかないでしょうか?
ブレイクポイントっていうのがそこでストップするっていうのはわかってたりするんですが
それの使いどころが判然としなかったり、他の機能に関してもそうです
0734デフォルトの名無しさん
2008/02/03(日) 21:18:28ウォッチウィンドウ等で変数の中身を確認しながら実行すれば、
論理的なエラーを発見するのに死ぬほど役立つ。
呼び出し履歴を併用すれば、変数の状態も追いかけ放題。
0735デフォルトの名無しさん
2008/02/03(日) 21:21:26そもそも明確に判ってないような気がする。
0736デフォルトの名無しさん
2008/02/03(日) 21:22:16使ったことない。
0737デフォルトの名無しさん
2008/02/03(日) 21:26:22よい書籍やサイトないですか?
0738デフォルトの名無しさん
2008/02/03(日) 21:27:370740733
2008/02/03(日) 21:49:54ループ部分とかループ回数分確認し続ける、とかなりそうですね・・・
使いどころが難しそうだ
>>735
バグ取りくらいの認識なんで、エラーの行見て修正
論理的なところは紙に全部書きだして直してます
0741デフォルトの名無しさん
2008/02/03(日) 22:30:10ループを抜け出たいなら、ちょうど出た所にブレイクポイントをかけておいて
通常実行をすればいい
あと気をつけないといけないのは、DebugモードとReleaseモードの違いね
Releaseの場合は、普通はコードが最適化されるので、その都合上
デバッガで追いかけられない場合がある
その場合はDebugモードに戻して再実行すること
0742733
2008/02/03(日) 22:42:26なるほど、それなら便利そうです
まだそういった作業が必要なレベルのものを組んだことがないんで実感が沸かなかったのかな・・
ありがとうございました
0743733
2008/02/03(日) 22:43:150744デフォルトの名無しさん
2008/02/03(日) 23:41:33なので2005をアンインストールして、2008をいれたほうがいいのでしょうか?
それと2005と2008の違いを教えてください。
0745デフォルトの名無しさん
2008/02/03(日) 23:55:220746デフォルトの名無しさん
2008/02/04(月) 01:24:04安心を得たいなら2005
0747デフォルトの名無しさん
2008/02/04(月) 01:34:320748デフォルトの名無しさん
2008/02/04(月) 07:49:460749デフォルトの名無しさん
2008/02/04(月) 10:14:59自分の書いたものしかデバッグしないの?
20年前か、、CodeViewで衝撃受けたころかなー
0750デフォルトの名無しさん
2008/02/04(月) 11:14:18バグを他人のせいにしやすい。
0751デフォルトの名無しさん
2008/02/04(月) 11:28:080752デフォルトの名無しさん
2008/02/04(月) 12:29:02VS2005のVC++でWin32ベースのDLLを作成しました。
その後セットアッププロジェクトで
レジストリの編集を行うところで戸惑っております。
すでに存在する、複数行文字列値(REG_MULTI_SZ)の値に
ある文字列を追加したいのですがセットアッププロジェクト上には
複数行文字列の項目がみあたりません。
セットアッププロジェクトのレジストリ編集では
複数行文字列の値を操作できないのでしょうか?
いい解決方法などご存知の方、どうぞよろしくお願いします。
0753デフォルトの名無しさん
2008/02/04(月) 13:50:480754752
2008/02/04(月) 14:01:06失礼しました。
0755デフォルトの名無しさん
2008/02/04(月) 14:11:550756デフォルトの名無しさん
2008/02/04(月) 16:55:070757デフォルトの名無しさん
2008/02/04(月) 17:50:43for (int i=0; i<sizeof(buff); i++) {
printf("%c", buff[i]);
}
をもっと速くなるようにチューニングしたいのですが
どのような方法がありますか?
0758デフォルトの名無しさん
2008/02/04(月) 18:00:12それは遅いのか?
本当に?
ちゃんと最適化しても問題になるほど遅いのか?
OK!
それなら、取り敢えずputchar(buff[i])ではどうだろうか。
0759デフォルトの名無しさん
2008/02/04(月) 18:01:060760757
2008/02/04(月) 18:27:20ありがとうございます。
とりあえずputcharにしました。
速くなった気はしないでもないです。
>>759
困ったことにナル文字があります。
0761100
2008/02/04(月) 18:31:14リソース(ダイアログ)が表示されなくなってしまいました。
原因が全く分かりません。
エラー、警告ともに0です。
実行できていたときから修正などは一切していません・・・何が原因でしょうか?
どなたかお分かりの方、お教えて頂けないでしょうか><
0762デフォルトの名無しさん
2008/02/04(月) 18:38:36斯くなる上は、fwrite(buff, sizeof(buff), 1, stdout)だ。
# 変わらんと思うけどねぇ。
0763デフォルトの名無しさん
2008/02/04(月) 18:40:54sizeof(buff)を変数に移して使った方が速いんじゃないかな
0764デフォルトの名無しさん
2008/02/04(月) 18:44:49sizeof(buff)は定数だから心配なし。
0765デフォルトの名無しさん
2008/02/04(月) 18:44:51それだけじゃエスパーじゃない限り返答不能です。
ダイアログ呼び出し前後のソースを公開してください
0766デフォルトの名無しさん
2008/02/04(月) 18:44:59可能ならどんな関数を使えばいいか教えて下さい。お願いします。
0767デフォルトの名無しさん
2008/02/04(月) 18:48:29そうなん?てっきり値が変わらなくても毎回サイズ計算するものだと思ってたよ
0768デフォルトの名無しさん
2008/02/04(月) 18:52:14簡単には出来ないと思うけど、自分でウィンドウサイズと位置を制御して
アニメーションさせれば似たような事ができると思うよ
0769100
2008/02/04(月) 18:53:56ソースは下記の通りです。
int PASCAL WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int Ret;
hPrevInstance = hPrevInstance;
lpCmdLine = lpCmdLine;
nCmdShow = nCmdShow;
// Create Dialog
Ret = DialogBox( hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DIO_Sample );
return Ret;
}
前回実行させて動作確認できたときから何も触っていない状態で、
今日実行させたらリソース画面が出てこなくなりました。
プログラムの問題なのでしょうか?
0770デフォルトの名無しさん
2008/02/04(月) 18:57:07計算するって言ったって、何を計算すると思ったのかね。
まさか、size_t foo = 4; は計算すると思わないだろ?
size_t foo = sizeof(int); は?
勿論、size_t foo = sizeof(buff); だって同じことだ。
0772デフォルトの名無しさん
2008/02/04(月) 19:10:53そのアニメーションをさせる関数が分かりません;
SystemParametersInfoはアニメーションを指定の座標へ行わせるものではないんですよね?
なんて検索したら見つかるでしょう・・
0773デフォルトの名無しさん
2008/02/04(月) 19:32:34既定の動作だと最小化するとタスクバーに入るけど
それをどうしたいの?
もしかしてタスクトレイに入れたいとか?
0774デフォルトの名無しさん
2008/02/04(月) 19:33:40定期的にSetWindowPosでも呼び出して座標とサイズを指定してやればいいんじゃないかと
0775デフォルトの名無しさん
2008/02/04(月) 19:50:10計算というか、中にある型やバッファのサイズの値を調べて取得する処理って事かな
内部的動作に詳しくないから、そういう処理は別になくて、バイナリコード的には
調べたサイズの値が直接入っているかもしれないけど。
0776デフォルトの名無しさん
2008/02/04(月) 20:08:44てことはバイナリコード的には取得した結果が直接入ってるって事か
ttp://ja.wikipedia.org/wiki/Sizeof
0777デフォルトの名無しさん
2008/02/04(月) 20:14:24そうです。タスクトレイへアニメーションつきで最小化をさせようと考えてます。
今、タスクトレイの座標取得をし、GetWindowRectで自ウィンドウのサイズを取得し、
DrawAnimatedRectsで自ウィンドウ位置からタスクトレイへアニメーションを考えてやってるんですが、少々問題がありまして。
文で説明するのが難しいんですが、ウィンドウは最大化状態ではないのに、アニメーションがウィンドウ一杯のメニューバーの大きさから
タスクトレイへ向かってアニメーションされてしまいます。それを自ウィンドウサイズに合わせる方法が全く分からず悩んでます。
>>774
DrawAnimatedRectsはRECT構造体を指定しないといけないんで、他でありますか?
0778デフォルトの名無しさん
2008/02/04(月) 20:15:53同じような挙動にしいなら、タイトルバーサイズのサブウインドウを用意して
それを縮小アニメーションさせつつ指定座標に移動させていき、指定座標にたどり着いたら
元のウィンドウを非表示にする必要がある。
何に使うのかは知らないけれど。
0779デフォルトの名無しさん
2008/02/04(月) 20:30:35よくわからんけど、>>778の一行目みたいなウィンドウズ準拠の動きは嫌だってこと?
ウィンドウ全体が縮小しながら移動するようにしたい?
そうなるとやっぱ定期的にSetWindowPosでセットするしかないんじゃない?
0780デフォルトの名無しさん
2008/02/04(月) 20:39:35>DrawAnimatedRectsはRECT構造体を指定しないといけないんで、他でありますか?
GetWindowRectで取得したRECT構造体のデータを使いたいって意味なら
RECT構造体っていうのは、
left→左上座標 X
top→左上座標 Y
right→右下座標 X
bottom→右下座標 Y
の4つで構成されてるデータ。
SetWindowPosにはleft、top,、right - left、bottom - top の値を設定すればいい
0781デフォルトの名無しさん
2008/02/04(月) 20:41:16>>778のような動きをさせたいんで回答としては有難いものなんですが、タイトルバーサイズのサブウィンドウを用意する必要があるんでしょうか?
DrawAnimatedRectsのRECT構造体はタイトルバーサイズの数値が入ってればいいってものではないんですか?
開始点のRECTには、タイトルバーサイズの数値がそれぞれのメンバに入ってるんですが、
何故か最大サイズのタイトルバーからアニメーションが始まります・・
てゆーか、新しくそれ用にサブウィンドウを用意するのが良く分からない・・・w
それもまた調べなければですね^^;
0782デフォルトの名無しさん
2008/02/04(月) 20:43:44レスが食い違いました。
ちなみになんですが、SetWindowPosってのはウィンドウレベルの指定と、ただ画面を動かすものではないんですか?
0783デフォルトの名無しさん
2008/02/04(月) 20:46:58というかDrawAnimatedRectsAPIで普通に>>778の動きになるような気がするんだけど
実際にそういうの作ったことないから俺は発言控えた方がいいな。
混乱させるだけみたいだし。
0784デフォルトの名無しさん
2008/02/04(月) 21:09:18と、言いつつ、試しにコレだけやってみたけど普通に動いてるよ
なんか範囲の設定が間違ってるんじゃない?
RECT rect, rect2;
GetWindowRect( hWnd, &rect);
rect2.left = 750;
rect2.top = 580;
rect2.right = 800;
rect2.bottom = 600;
DrawAnimatedRects(hWnd, IDANI_CAPTION, &rect, &rect2 );
0785デフォルトの名無しさん
2008/02/04(月) 21:17:00ありがとうございます。
私のは何が違っているのか判明しました。
上ではタスクトレイの座標を取得し、と書きましたがトレースしたら取得できてませんでした;;
HWND tray;
RECT stray;
tray = FindWindow("ModelApp","SysPager");
GetWindowRect(tray,&stray);
では取得できてませんでした。
DrawAnimatedRectsの方の使い方や考え方はあってたのに、こっちが違ったとはorz
FindWindowはこの記述じゃいけないんですかね?
ModelAppはエントリポイントで指定したClassNameです。
0786デフォルトの名無しさん
2008/02/04(月) 21:29:37参考になるかな?これまたやった事ないんで確証はないけど
ttp://www.geocities.jp/g_e_k_o_g_e_k_o/column/column.html
0787デフォルトの名無しさん
2008/02/04(月) 23:24:42HWND getTrayToolbar(HWND hToolbar)
{
HWND hTrayWnd, hNotifyWnd, hSysPager;
hTrayWnd = ::FindWindow("Shell_TrayWnd", NULL);
if (hTrayWnd == NULL)
return NULL;
hNotifyWnd = ::FindWindowEx(hTrayWnd, NULL, "TrayNotifyWnd", NULL);
if (hNotifyWnd == NULL)
return NULL;
// OSの違いを吸収
// SysPagerが取得できなかったときは、win2000,Meと仮定し、
// TrayNotifyWnd直下にToolbarWindow32がある可能性にかける。
hSysPager = ::FindWindowEx(hNotifyWnd, NULL, "SysPager", NULL);
if (hSysPager == NULL)
hSysPager = hNotifyWnd;
hToolbar = ::FindWindowEx(hSysPager, NULL, "ToolbarWindow32", NULL);
return hToolbar;
}
HWND tray;
RECT stray;
getTrayToolbar(tray);
GetWindowRect(tray,&stray);
これでstrayに座標が入ってるはずなんですが、表示してもちゃんとした数値は入ってませんでした。
0788デフォルトの名無しさん
2008/02/04(月) 23:31:40変に改造したのがよくなかったです。
HWND getTrayToolbar(HWND hToolbar)
{
を
HWND getTrayToolbar(void)
{
に戻し、
getTrayToolbar(tray); を
tray = getTrayToolbar();
にしたところ取得できました。
初心者の分かりづらい質問にも親切に答え、参考サイトを調べて頂いたりトレースして頂いたり本当に有難うございました!
0789デフォルトの名無しさん
2008/02/04(月) 23:38:23しまいました。VB5.0/6.0やVB.NET,C#.NETは使ってきましたがC++を実務で
するのは初めてです。
ソースを修正してデバッグモードで実行しても、デバッグウィンドウで表示される
結果は元のソースでの処理結果のままなのですが、こういうものなのでしょうか。
(ビルドして生成したDLLは修正したとおりに動く)
また、ビルド時に構成でReleaseとDebugが選択できますが、これの違いは
なんでしょうか。構成をDebugにしてもDLLは生成されますが、本来はReleaseで
作るべきものなのでしょうか。
0790デフォルトの名無しさん
2008/02/05(火) 00:13:20メモリ領域を利用する前に特定の値で初期化したりしてバグを発見しやすくしたり、
実行ファイルにデバッグ用の情報を埋め込んだり、最適化を無効にしてデバッガで追いやすくしたり。
つまり、デバッグ向けで速度が遅い、実行ファイルがでかい。
なので開発はDebugビルドで製品として出す場合はReleaseビルドかな。普通は。
VC6.0しらないし、デバッグウィンドウが何を指して言っているのか分からないけど
Releaseビルドだとうまくデバッグできないかもね。
0791デフォルトの名無しさん
2008/02/05(火) 00:31:39VC++で作ったプログラムで、例外が発生したときにデバッグ情報をファイルに
書き出すようにしたいと思うのですが、変数領域についてよく分からないのです。
ファイルアクセスとか例外が起きそうなところに__try,__exceptブロックを作って
GetExceptionInformation()で例外情報を取り込んで、
レジスタの値を調べて、スタック情報を記録するところまではできました。
ただ、これだけだとポインタの指すデータが残らないので不便だと思い、
データの領域も記録しようと思うのですが・・・どこら辺を記録すればいいのか
分かりません。
いろいろ調べたところ、.dataセクションと.bssセクションの領域はファイルヘッダから
計算できる(他に方法があれば教えてください)ことは分かったのですが、ヒープ領域の
アドレスってどうやって調べればいいのでしょうか?
あと、変数って.dataセクションと.bssセクションとスタックとヒープ領域に作られる
と思ってたんですけど、他の領域にも作られるんですか?
済みませんが、よろしくお願いします。
0792789
2008/02/05(火) 00:36:53ご回答ありがとうございます。
やはりReleaseビルドですべきですか。
ちなみに今、デバッグウィンドウに処理結果が反映されない、といっているのは
Debugビルドのものです。
0793デフォルトの名無しさん
2008/02/05(火) 00:44:59デバッグウィンドウってのは自動変数とかをのぞく奴?
ブレークポイント仕掛けてステップ実行してけば普通は値が反映されると思うけど。
正直よくわからん。
0794789
2008/02/05(火) 01:03:15そう、普通にブレークポイントで止めて、ステップ実行しながら変数の値を
追っかけていくのですが自分が追加したロジックを無視してしまうのです。
DLLを生成するとそのロジックを反映したもので動作するので不思議です。
0795デフォルトの名無しさん
2008/02/05(火) 01:10:350796デフォルトの名無しさん
2008/02/05(火) 01:14:45デバッグビルドで無視するのは本当に飛ばしてるのか、
ブレイクポイントが適切な行に設定されてないのかどっちかかな
0797789
2008/02/05(火) 01:14:58とりあえず、本来は修正結果がデバッグでも反映されるべき、っていうのは
わかったのでまた試してみます。ありがとうございました。
0798デフォルトの名無しさん
2008/02/05(火) 01:22:13その引数の渡し方だと、実際に引数として渡した変数そのものではなくて
別の変数が関数内で作られてしまうから取得はできない
そういう場合は、HWND getTrayToolbar(HWND &hToolbar)
と記述すると、実際に渡した変数にそのまま格納される
じゃなければ、HWND *lphToolbar などとしてポインタを引数で渡すとか。
0799デフォルトの名無しさん
2008/02/05(火) 06:31:15デバッガ入れてない環境では動作しないしない可能性がある。
ビルドしたプログラムの配布禁止(ライセンス違犯)
0800デフォルトの名無しさん
2008/02/05(火) 11:19:38違犯ってなんだよ。違反なら判るが。
>>797
古いままのDLLが動いているって話か?
0801デフォルトの名無しさん
2008/02/05(火) 15:33:39cppファイルとかを単体で開いた時にも機能するようにはできないでしょうか?
0802デフォルトの名無しさん
2008/02/05(火) 17:22:36そんなの無理に決まってるだろ
0803デフォルトの名無しさん
2008/02/05(火) 21:46:240804デフォルトの名無しさん
2008/02/05(火) 21:48:180805デフォルトの名無しさん
2008/02/05(火) 22:16:22秀丸に単語補完機能がある。それで似たようなことはある程度可能。
と言ってもこういう質問がでる時点でIDEとかエディタとか知識が少なめに感じる・・・
0806デフォルトの名無しさん
2008/02/05(火) 22:48:18同名の関数を保持したライブラリやオブジェクトがハードディスク上に複数あるとする。
そのいずれも呼び出し側のcppファイルとは異なったフォルダにある。
さて、呼び出し側のcppファイルを解析するだけで、複数ある同名関数の中の
どれを呼び出せばいいのかがわかるだろうか?
0807デフォルトの名無しさん
2008/02/05(火) 23:02:48インクルードパスさえなんとかなればな。
0808デフォルトの名無しさん
2008/02/06(水) 00:59:560809デフォルトの名無しさん
2008/02/06(水) 08:17:59どれを呼び出せばいいかなんて分かる必要があるの?
引数ならヘッダ見れば分かるし、というか分からないとコンパイルできないだろ
パスの設定は見落としてた
0810デフォルトの名無しさん
2008/02/06(水) 09:14:00嫌ならIDE使わなきゃいい
0811デフォルトの名無しさん
2008/02/06(水) 13:06:06ごめんごめん。
ライブラリやオブジェクト
↓
ライブラリやオブジェクト、それに付随するヘッダ
という事で。
0812デフォルトの名無しさん
2008/02/06(水) 13:30:39インストール直後いつものエディタが起動しないのであせるw
0813デフォルトの名無しさん
2008/02/06(水) 13:34:27どうしてもcpp単体で見られるようにしたいと言うんなら
自分で検索するインクルードヘッダの参照パスを指定できるエディタでも作ればいいよ。
0814デフォルトの名無しさん
2008/02/06(水) 13:35:29インストール時に関連付けの設定できなかったっけか
0815デフォルトの名無しさん
2008/02/06(水) 13:41:22できる、、けどOSから順番に入れなおしてるとインストール順によって
状況が変わるみたい。
0816デフォルトの名無しさん
2008/02/06(水) 14:15:59だからプロジェクト作らないとコンパイルもできない。
プロジェクト作らずにコンパイルする方法もあるが
0817デフォルトの名無しさん
2008/02/06(水) 14:47:41VisualC++では何を使ってマルチスレッドにするのが一般的ですか?
0818デフォルトの名無しさん
2008/02/06(水) 14:50:070819デフォルトの名無しさん
2008/02/06(水) 18:44:23状況によって何を使うべきかが変わるので
一般的とかそんなの無い。
0820デフォルトの名無しさん
2008/02/06(水) 19:09:270821デフォルトの名無しさん
2008/02/06(水) 19:11:48CreateMenu(), AppendMenu() を使用して
"ファイル(&F)" [POPUP] (hMenuFile)
"ファイルを読み込み"
セパレータ
"履歴" [POPUP] (hMenuRecent)→ "&0 " + path
セパレータ
終了(&X)
な感じに作成し、履歴からポップアップされるpathを選んだ時に
GetMenuItemRectで位置を取得しようとするのですが、
インデックスを試しに0にして値を調べて見ると、
hMenuFileの時でもhMenuRecentの時でも同じ、つまり"ファイルを読み込み"の位置情報しか取得しません。
インデックスを1にすると、0の時のtopに履歴からポップアップされたメニューの縦幅がプラスされた値になります。
ちなみに、上の二つのメニューハンドル値は、ちゃんと違う値でした。
色々条件を変えながらやってるのですが、どうしても path にあたる位置情報取得出来ず、、どの辺が間違ってるのでしょうか?
0822デフォルトの名無しさん
2008/02/06(水) 20:55:36#include "DxLib.h"
// プログラムは WinMain から始まります
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{ if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{ return -1 ; // エラーが起きたら直ちに終了
}
DrawPixel( 320 , 240 , 0xffff ) ; // 点を打つ
WaitKey() ; // キー入力待ち
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
で、------ ビルド開始: プロジェクト: test2, 構成: Debug Win32 ------
コンパイルしています...
DrawPixel.cpp リンクしています...
LINK : fatal error LNK1104: ファイル 'DxLib_d.lib' を開くことができません。
ビルドログは "file://c:\Documents and Settings\user\My Documents\Visual Studio 2005\Projects\test2\Debug\BuildLog.htm" に保存されました。
test2 - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
となって進みません。どうすればいいのでしょうか?
よろしくお願いします。
0823デフォルトの名無しさん
2008/02/06(水) 21:13:07そのライブラリをリンクしてください
0824デフォルトの名無しさん
2008/02/07(木) 08:57:44依存関係に注意しながら並列にビルドすることができますよね?
一つのプロジェクトに含まれる複数のコンパイル単位を
並列にコンパイルさせるということは VC++ の IDE では
無理なんでしょうか?
GNU make だとできるんですが,できれば IDE で
できればいいなと思っています.
0825824
2008/02/07(木) 09:07:37これって /Yc や /Gm と競合するんですね.
/Yc は別途プリコンパイルヘッダを作ってやればいいだけなのですが,
/Gm ってはずしちゃうと逆効果なのかなぁ.
/Gm の効果をいまいち実感できていないのではずして /MP 使った方がいいですかね?
0826デフォルトの名無しさん
2008/02/07(木) 09:40:24class Aiueo{
定義
};
のように書いておけば IntelliSense で Aiueo のインスタンスを
ポイントしたときに「あいうえお」も含めて表示してくれたり
しませんかね?
C++ ではコード内のコメントでドキュメンテーションするのは
無理なんでしょうか? C# だとその辺の機能があるんですが・・・
0827デフォルトの名無しさん
2008/02/07(木) 12:05:59使った方がいいですかねじゃなくてさ
使ってみればいいじゃない
0828デフォルトの名無しさん
2008/02/07(木) 12:27:420829デフォルトの名無しさん
2008/02/07(木) 13:17:27コード(タブが 2 と 4)が混在しているとき、
一気に整形し直すことってできないでしょうか?
C#では貼り付けた時に自動的に整形してくれるのですが
C++では無理ですか?
0830デフォルトの名無しさん
2008/02/07(木) 13:26:29VC++のエディタでできたと思う
0831デフォルトの名無しさん
2008/02/07(木) 13:41:290832デフォルトの名無しさん
2008/02/07(木) 13:47:20CでよければK&Rにタブをスペースに変換する演習問題があったよ
0833デフォルトの名無しさん
2008/02/07(木) 13:51:190834デフォルトの名無しさん
2008/02/07(木) 15:09:09出しているとき private や protected のメンバを
一時的に隠したいとかできますか?
どうせアクセスできない基底クラスのメンバがずらずらと・・・
0835デフォルトの名無しさん
2008/02/07(木) 17:45:420836デフォルトの名無しさん
2008/02/07(木) 19:40:58Alt + F8 かな。
0837デフォルトの名無しさん
2008/02/07(木) 23:18:48>一時的に隠したいとかできますか?
「一時的に隠したい」と願うことはできます。
0838デフォルトの名無しさん
2008/02/08(金) 00:32:02F5でデバッグ開始をすると一瞬だけ
「オブジェクト テスト ベンチ」
とタイトルバーに書かれたウィンドウが表示されます。
これを非表示にする設定などありますか?
0839デフォルトの名無しさん
2008/02/08(金) 00:42:500840ああ
2008/02/08(金) 01:14:26OnTimer(UINT nIDEvent)やOnLButtonUp(UINT nFlags, CPoint point) にいろいろ記述してみましたが、うまくいきません。どなたか教えてください!
0841デフォルトの名無しさん
2008/02/08(金) 01:19:56Ctrl+F5 or DOS窓からEXEを直接実行
0842デフォルトの名無しさん
2008/02/08(金) 01:27:520843デフォルトの名無しさん
2008/02/08(金) 01:31:45そのマウスクリックとやらが、どこをクリックするのかによっても変わってきます。
いろいろ記述してみましたとは、何を記述したのでしょうか。
上手く行かないというのは、何が上手くいかないのでしょうか。
その質問で答えが返ってくると本気で思っているのですか?
0844デフォルトの名無しさん
2008/02/08(金) 01:39:20揚げ足取ってもいいけど答えになってないならレスしなきゃいい
自分はわかってるような言い方して結局説明しないとかね
そんならとっととこのスレから消えればいいじゃん
0845デフォルトの名無しさん
2008/02/08(金) 01:41:10揚げ足取られて悔しいのはわかるが見苦しいだけだぞ。
0846ああ
2008/02/08(金) 01:55:33指摘ありがとうございます。
記述した内容を載せようと思ったら
行が多すぎるとのエラーがでたので分けてかきます!
//////////////////////////////////////
x1,y1はBITMAPキャラクターの座標です。
x2,y2はクリックした位置の座標です。
//////////////////////////////////////
void CMiyazaki_anime1View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
SetTimer(ID1, TIMER_TEXT1, NULL);//テキスト1を処理するタイマーセット
CView::OnLButtonUp(nFlags, point);
}
0847ああ
2008/02/08(金) 01:56:37void CMiyazaki_anime1View::OnTimer(UINT nIDEvent)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
if(nIDEvent == ID1){ //IDによって処理を変える
if(x2>x1 && y2>y1){
for(i=10,j=10;i<=x2-x1,j<=y2-y1;i++,j++){
x1+=i;
y1+=j;
}
CRect rc;
GetClientRect(&rc);
bmpID = (bmpID+1) % 3; //表示するBMPを変更する
}
と今は記述しています。
OnTimerのif文に関しては、このときの条件で成功したらさらにif文を追加
しようとおもったのですが、失敗したためこれしか書いていません。
また、これで実行すると、キャラクターがいっきにマウスクリックした場所に
移動してきてしまいます。
キャラクターが歩くようにスムーズに動いてほしいです。
ちなみにクリックする場所はウインドウ内です。
0848デフォルトの名無しさん
2008/02/08(金) 09:38:34コード中のコメントを IntelliSense で表示させる機能は
Visual Studio 2005/2008 にはついていないの?
0849デフォルトの名無しさん
2008/02/08(金) 09:44:07少なくともここにあげるときくらいは。
for文の判定式のカンマは意味があるのか?
0850デフォルトの名無しさん
2008/02/08(金) 12:28:42MouseButtonDownで、マウスの位置をメンバ変数に保存する。
Timerイベントが発生するたびに保存した位置に少しづつ移動させる。
0851デフォルトの名無しさん
2008/02/08(金) 14:33:56出来ますが、クラスウィザードを使おうとするとオブジェクトIDが
出ないので何もできないです。解決方法はありますか?
0852デフォルトの名無しさん
2008/02/08(金) 17:17:44クラスウィザードが何かわかってる?
0853デフォルトの名無しさん
2008/02/08(金) 18:09:11が出ないからメンバ変数が設定できずに値のやり取りが出来ない。
エディトボックスから数値の受け取りが出来れば方法は何でも良いけど。
0854デフォルトの名無しさん
2008/02/08(金) 18:13:30MFCクラスの作成>CDialogで作れる。
0855デフォルトの名無しさん
2008/02/08(金) 19:47:02のですがMFCクラスの作成はどうすればよいのでしょうか?
0856デフォルトの名無しさん
2008/02/08(金) 20:08:10MFCプロジェクトで無いなら諦めろ。
Express版は論外。
0857821
2008/02/08(金) 20:41:10>>821のような状況が未だに解決出来ず、助言頂けませんでしょうか。。
0858デフォルトの名無しさん
2008/02/08(金) 21:28:370859838
2008/02/08(金) 21:36:20ありがとうございます
Ctrl+F5 or DOS窓ではなくF5の時出さないようにしたいんです。
一瞬しかでないんで、バーをクリックして消そうとしたんですが無理だったんで。
デバッグ中に表示→その他のウィンドウで消そうかと思ったんですが、
デバッグ中だけ「オブジェクト テスト ベンチ」の項目もなくなっていて…
F5の時でないようにするのは無理なんでしょうか?
質問の仕方が悪くてすいません。
0860デフォルトの名無しさん
2008/02/08(金) 21:47:220861デフォルトの名無しさん
2008/02/08(金) 21:52:210862デフォルトの名無しさん
2008/02/09(土) 00:25:56回答ありがとうございます!
「Timerイベントが発生するたびに保存した位置に少しづつ移動させる。」
ときの記述法が分かりません。ただ単に動かすのはx+=10;(xはキャラクターのx座標)
ですよね?
今の場合はどのように記述したらよいのでしょうか?
0863デフォルトの名無しさん
2008/02/09(土) 00:44:53キャラクターを移動させるのは基本中の基本だから
それが分からんとなるとどうにもならん。
0864デフォルトの名無しさん
2008/02/09(土) 01:29:44一次関数でも復習したらいいんじゃないかな
0865デフォルトの名無しさん
2008/02/09(土) 02:34:22それだと一回OnTimerが呼ばれただけで
for内でクリック座標まで足してしまってるでしょ?
int vx;
vx = x2 - x1;
if(vx > 10) vx =10; //10以上進まないようにする
else if(vx < -10) vx = -10;
x1 += vx;
これで良いと思う。
※x1、x2がintであると仮定してる
0866デフォルトの名無しさん
2008/02/09(土) 05:50:34どうもありがとうございます!865さんの書き込みがある前に自己解決しました。
でも、丁寧に指摘していただきありがとうございました☆
0867デフォルトの名無しさん
2008/02/09(土) 08:47:54maicrosoft SDKsにパスを通す設定はしてあります エラーがでてビルドできません
0868デフォルトの名無しさん
2008/02/09(土) 09:37:53なんでエラーメッセージを書かないんだ?
0869デフォルトの名無しさん
2008/02/09(土) 09:45:38そのプログラム書いたやつに直接質問しろ
なんで糞サイトの尻拭いしなきゃならんのだ
0870デフォルトの名無しさん
2008/02/09(土) 09:57:40>エラーがでてビルドできません
エラーが出ると言いながら内容を書かずにいる
回答が欲しけりゃ隠蔽すんなよボケ
0871デフォルトの名無しさん
2008/02/09(土) 10:19:35あえて使う理由がなかったらあきらめて他のにした方がいい。
0872デフォルトの名無しさん
2008/02/09(土) 10:34:56http://www.kumei.ne.jp/c_lang/net2005/sample.htm
0874デフォルトの名無しさん
2008/02/10(日) 04:11:03いちいち人を見下す発言するな
ネットでしかエラそうにできない奴が
0875デフォルトの名無しさん
2008/02/10(日) 07:45:120876デフォルトの名無しさん
2008/02/10(日) 08:48:13>>870の書いている事は正論だが。
見下されるのが嫌なら自力でなんとかしろ
0877デフォルトの名無しさん
2008/02/10(日) 11:46:03確かに正論だが、最後のボケはいらんだろ
0878デフォルトの名無しさん
2008/02/10(日) 12:07:570879デフォルトの名無しさん
2008/02/10(日) 12:19:40Wnd: ウィンドウ
読み方なんて無いと思うぞ
0880デフォルトの名無しさん
2008/02/10(日) 12:30:290881デフォルトの名無しさん
2008/02/10(日) 12:47:310882デフォルトの名無しさん
2008/02/10(日) 12:50:58だからハンドルインスタンスなのか
ヒンスタンスかと思った
0883デフォルトの名無しさん
2008/02/10(日) 12:54:15フワンドのほうがよくね?
なんかつっかかるぞそれ
0884デフォルトの名無しさん
2008/02/10(日) 12:55:27wnd=風
つまり、海原はるか師匠のことだったんだよ!
http://blogimg.goo.ne.jp/user_image/41/86/2b9eb588661509edfbbb4b14947138aa.jpg
0885デフォルトの名無しさん
2008/02/10(日) 13:31:400886デフォルトの名無しさん
2008/02/10(日) 18:20:420887デフォルトの名無しさん
2008/02/10(日) 20:13:270888デフォルトの名無しさん
2008/02/10(日) 21:47:56いずれもReleaseビルドで実行速度を優先にしても
2008の方がexeのサイズが40kB程大きくなってしまいます
原因として考えられることは何でしょうか
0889デフォルトの名無しさん
2008/02/10(日) 22:28:100890デフォルトの名無しさん
2008/02/10(日) 22:29:12出世したな
0891デフォルトの名無しさん
2008/02/10(日) 22:46:44>2008の方がexeのサイズが40kB程大きくなって
なんでサイズ優先にしないの?
0892デフォルトの名無しさん
2008/02/10(日) 22:56:340893デフォルトの名無しさん
2008/02/10(日) 23:07:35思えるんだろうか?
0894デフォルトの名無しさん
2008/02/10(日) 23:17:58処理時間も当然変わるし、へたすりゃ潜在的なバグが顕在化するかもしれない。
むしろ一切変わらなかったら何を間違ったんだ!?ってなるようなことだと思うが・・・
0895デフォルトの名無しさん
2008/02/10(日) 23:47:43なぜか実行してもそのビットマップが表示されません。
インポートじゃなく、新規作成でビットマップを追加すると表示されるのに・・。
なぜでしょう?
0896デフォルトの名無しさん
2008/02/11(月) 01:19:40インポートしたビットマップと
新規作成したビットマップの色数は同じ? 違うなら同じにしてみたらどうなる?
後、表示ってのは自分で表示してるの?
それともツールバーとかピクチャとかのコントロールで表示させているの?
0897デフォルトの名無しさん
2008/02/11(月) 01:37:01Unicode ReleaseとUnicode Debugのプロジェクト設定を追加するにはどうしたらいいの?
できれば非UniocdeのReleaseとDebugは残したままで「追加」がうれしいのだが。
過去だれかがうまいことやってたの見たことあるけど、
自分でやってみたらどうやっていいかわからなかった。
0898デフォルトの名無しさん
2008/02/11(月) 02:03:15事故レス。
ビルド構成で追加してUnicodeと_Unicode入れればおk
簡単ですた
0899デフォルトの名無しさん
2008/02/11(月) 02:37:41お返事ありがとうございます!
色数は同じです。
sampleBMP.LoadBitmap(IDB_SAMPLE);でリソースを読み込み、
OnDraw関数内で
BITMAP bmp;
sampleBMP.GetBitmap(&bmp);
CDC bmbkDC;
bmbkDC.CreateCompatibleDC(pDC);
CBitmap *old = bmbkDC.SelectObject(&sampleBMP);
TransparentBlt(bkDC, x1-bmp.bmWidth/2, y1-bmp.bmWidth/2,bmp.bmWidth, bmp.bmHeight,bmbkDC, 0, 0, bmp.bmWidth, bmp.bmHeight, RGB(255, 0, 255));
とし、画像を表示させようとしています!
0900デフォルトの名無しさん
2008/02/11(月) 04:53:41デバッガ使ってる?
0901デフォルトの名無しさん
2008/02/11(月) 15:52:27素人に毛が生えた程度の知識の粘着キモオタが、はけ口をもとめて、素人相手に優越感を味わう
いかにも2chらしい愉快なスレだな。。。
ざっと見るだけでも
> 違犯ってなんだよ。違反なら判るが。
> 見苦しいから汚いコード貼らないでくれる?
とか、いびり専門の粘着キモオタ。ゆとり世代はマジ糞だな。
質問者も聞くところがなくて困ってるんだろうが
> すいません、この質問が終わったらよそに行きます。
> 見逃してください。
とかこびてるところ見ると痛々しい。なんでそこまで。。。
ネット上の我慢だと思って一時的にこびて聞いても、ほとんどたいした情報得られないのは
スレ斜め読みするだけでも明らかだから、職場とか友達とかに聞いたほうが絶対いいよ。
2chもスレによっては技術系でも和気あいあいとやってるとこあるんだが、
ここは落ちるところまで落ちてる。
役に立たないくせにスレが排他的に立っていること自体が害悪。
せめてIDでも表示されるようになれば、少しは浄化されるんだろうな。
そう思わないか?
0902デフォルトの名無しさん
2008/02/11(月) 15:55:03>素人に毛が生えた程度の知識の粘着キモオタが、はけ口をもとめて、素人相手に優越感を味わう
まさにこういうクズしかいないから仕方ない
0903デフォルトの名無しさん
2008/02/11(月) 15:58:57俺も若い頃はそういうとこ入って、聞いたり教えたりしてた。
そっちのほうがいいんじゃないか。
http://www2.ocn.ne.jp/~links4pg/sub89.htm
こんなのとか。
0904デフォルトの名無しさん
2008/02/11(月) 16:34:01せいぜいNGIDができて便利だなというくらい。
0905デフォルトの名無しさん
2008/02/11(月) 17:41:25お前が親切に対応してやれよ
あれは自分が興味ある質問には答えてるよ
0906デフォルトの名無しさん
2008/02/11(月) 18:14:00まあ落ち着けよ
ふと立ち寄ったにしてはやけに饒舌だなw
0907デフォルトの名無しさん
2008/02/11(月) 19:51:48VC++2008では、VC++2005にあった
woutのlocaleのバグって直ってる?
持っている人教えて。
内容は↓
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=250724&SiteID=7
0908デフォルトの名無しさん
2008/02/11(月) 20:04:27これってもしかしてすごいやばいんじゃ・・・
技術があればいくらでもメモリを書き換えてすき放題できちゃうような気がするんだけど
本には気をつけろとしか書いてないんだけど、もしかしてVC++側でチェックしてくれてないの?
っていうか一回ミスしたらパソコン動かなくなるんじゃ・・・VC++6.0だけど大丈夫だよね?
0909デフォルトの名無しさん
2008/02/11(月) 20:06:320910デフォルトの名無しさん
2008/02/11(月) 20:22:28STLは正直詳しくないけど、最後から二つ目のレスのコードが動けばOKって事で良い?
なら、imbueの前の行にclear挟む必要があったけど、きちんと日本語が出力されてたよ。
ちなみにVC++2008EEで試した。
個人的には、ページ単位のホイールスクロールで即落ちをさっさと直せと問い詰めたい。
逆方向に一行とか生易しいレベルじゃねえよ、これは。
0911デフォルトの名無しさん
2008/02/11(月) 20:26:34悪意なく起こってしまった分に関しては、
OSにプログラムが強制終了させられるだけ。
メモリの中ならいくらいじったってプロセス終了、
最悪でもOSの再起動で問題なし。
0913デフォルトの名無しさん
2008/02/11(月) 21:23:420914デフォルトの名無しさん
2008/02/11(月) 23:30:38'#include "stdafx.h"' をソースに追加しましたか? というエラー
がでます。
どうすればいいでしょうか?
#include <stdio.h>
int main(void)
{
printf("hello");
return 0;
}
0915デフォルトの名無しさん
2008/02/11(月) 23:54:090916デフォルトの名無しさん
2008/02/12(火) 00:00:250917デフォルトの名無しさん
2008/02/12(火) 23:25:200918デフォルトの名無しさん
2008/02/12(火) 23:25:36CLRのwindowsフォームアプリケーションとWin32のWindowsアプリケーションは、
どう違うのでしょうか?どのへんに注意して選べばいいか教えてください。
たとえば、GUIの作りやすさとか人のマシンで動かす時に必要なランタイムとか機能の制約とか。。。
0919デフォルトの名無しさん
2008/02/12(火) 23:30:37Win32アプリケーションは、大多数のWindowsアプリケーションと同じ
普通のEXEファイルが出来上がる。
といってもVC++ 2005ランタイムが必要だけど、これは.NET Frameworkに比べれば小さい。
GUIの作りやすさはCLRに軍配が上がるけど、それだったらC#使えよと思う。
0920デフォルトの名無しさん
2008/02/12(火) 23:43:240921918
2008/02/12(火) 23:49:04数日調べててわからなかったので、ものすごく助かりました。
どうもありがとうございました!
コンピュータ音痴でもセッティングしやすいほうを選ぼうと思います。
Win32アプリケーションのほうは、GUIを作るにはリソースエディタが必要なんですよね!?
次はその辺を勉強してみます。
0922デフォルトの名無しさん
2008/02/13(水) 00:02:11どうせテキストファイルだ
0924デフォルトの名無しさん
2008/02/13(水) 00:38:43>>1の猫でものWindows SDKの部分をまずは読んでみたら?
0925デフォルトの名無しさん
2008/02/13(水) 00:44:04リソースエディタがないってことはExpressEditionってことかな?
フリーのリソースエディタならXN Resource Editorというのがあるよ。
http://www.wilsonc.demon.co.uk/d10resourceeditor.htm
他にもあったけど失念。
0926918
2008/02/13(水) 02:00:45>>925さん Expressです;;XNResourceEditor試してみます。ありがとうございました。
0927デフォルトの名無しさん
2008/02/13(水) 02:55:35どのプロジェクト作ったらいいかも分からない状況です
0928デフォルトの名無しさん
2008/02/13(水) 03:24:130929デフォルトの名無しさん
2008/02/13(水) 03:29:07Visual C++ 200X 画像プログラムやらなんやらと書いてある本でも買え
何も知らないような奴がいきなりネットだけで知識を得ようとするな
0930デフォルトの名無しさん
2008/02/13(水) 10:20:55リソースエディタは楽できるだけで
手書きする技量がないと結局何もできません。
最初からあきらめた方がいい。
0931デフォルトの名無しさん
2008/02/13(水) 10:40:36>手書きする技量がないと結局何もできません。
そうでもないよ
連番IDに揃え直したりする事が必要にならなければエディタで事足りる
0932デフォルトの名無しさん
2008/02/13(水) 10:57:28手書きしろとは言ってない
0933デフォルトの名無しさん
2008/02/13(水) 11:06:04プログラムを作ろうとすると
もうリソースエディタではどうしようもないだろ
設定とかのダイアログにしか使えない気がするんだが
0934デフォルトの名無しさん
2008/02/13(水) 11:13:220935デフォルトの名無しさん
2008/02/13(水) 11:16:56リソースファイルの手書きとAPI操作による手書きだと意味が違うぞ。
元々言っているのはリソースファイルの手書きの方だ。
0936デフォルトの名無しさん
2008/02/13(水) 11:21:52馬鹿にでも使えるためにあるんじゃないよ
馬鹿にでも使えるものがほしいならVC以外にした方がいい
0937デフォルトの名無しさん
2008/02/13(水) 11:29:270938デフォルトの名無しさん
2008/02/13(水) 11:30:020939デフォルトの名無しさん
2008/02/13(水) 11:34:10VCはてんでわからない人だったな。
後輩の俺が世話を焼いてやったもんだ。
0940デフォルトの名無しさん
2008/02/13(水) 15:39:050941デフォルトの名無しさん
2008/02/13(水) 15:52:480942デフォルトの名無しさん
2008/02/13(水) 15:55:330943デフォルトの名無しさん
2008/02/13(水) 15:55:55M$独自の実装だからLinuxでは無理と思われ
使い方さえ間違っていなければCの関数の
VCが吐く古い形式警告は気にしなくても良いじゃん
0944デフォルトの名無しさん
2008/02/13(水) 16:25:01を使いたいのですが、どうすればいいですか。
0945デフォルトの名無しさん
2008/02/13(水) 16:35:26ドラッグで移動できるけど
CreateDialogで作ると移動できない。
コードはほとんど同じなのに何故
なんでしょう?
0946デフォルトの名無しさん
2008/02/13(水) 16:40:56移動以外は動作してるのか?
MessageBoxはモーダル(== DialogBox())でメッセージループ自前だが、
CreateDialog()はモードレスで、メインのメッセージループを使う。
その辺なんじゃないの?
0947デフォルトの名無しさん
2008/02/13(水) 18:30:52がbool形でdialogboxがLRESUL型ってところ。
0948デフォルトの名無しさん
2008/02/13(水) 18:41:48普通では起きない現象みたいだから945さん以外の人は気にする必要ないかも
0949デフォルトの名無しさん
2008/02/13(水) 18:46:15えーと、WinMainでMessageBox呼ぶと
メッセージループ書かなくても動作するけど
CreateDialogはそうはいかないよね?
これをどう説明する?
0950デフォルトの名無しさん
2008/02/13(水) 19:03:40>>946 = >949?MessageBoxがモーダル
だけど?知ってる人でこういうこと聞く
人居たけど大学中退?
0951デフォルトの名無しさん
2008/02/13(水) 19:14:16それウィンドウプロシージャ・ダイアログプロシージャのことでは?
メッセージループといったら、GetMessageなんかのほうだろ。
0952デフォルトの名無しさん
2008/02/13(水) 19:24:370953デフォルトの名無しさん
2008/02/13(水) 19:35:510954デフォルトの名無しさん
2008/02/13(水) 19:49:26答えてやってる相手に暴言はいてるようではな。
0955デフォルトの名無しさん
2008/02/13(水) 22:25:49何か俺間違ってる?
0956デフォルトの名無しさん
2008/02/13(水) 23:01:54>> 951 これから調べます。
>>952 詳しく。
>>955 頭良いね。
0957デフォルトの名無しさん
2008/02/13(水) 23:10:060958デフォルトの名無しさん
2008/02/14(木) 01:23:312005でビルドしたら物はできたけど
0959デフォルトの名無しさん
2008/02/14(木) 02:09:050960デフォルトの名無しさん
2008/02/14(木) 02:40:11どうでもいいことでキャンキャンほえるな
おまえのちんけなプライドなどに興味ない
0961デフォルトの名無しさん
2008/02/14(木) 02:43:39おれは10年以上VC使ってるが、
rcファイルいじる必要があった場面なぞほとんどないがな。
例外はsyslog関係処理のときくらい。
おまえ、ツールを効率よく活用するということを覚えたほうがいいぞ。
0962デフォルトの名無しさん
2008/02/14(木) 02:43:550963デフォルトの名無しさん
2008/02/14(木) 02:44:54>>961-962
タイミング悪すぎw
0964デフォルトの名無しさん
2008/02/14(木) 02:51:02図形かくくらい、ネットで十分だろ。というかネットのほうが便利。
いまどき本で勉強しようって感覚、おいおいって思うが。。
0965デフォルトの名無しさん
2008/02/14(木) 02:51:52画像じゃないぞ、図形だぞ。
0966デフォルトの名無しさん
2008/02/14(木) 02:59:53ウィンドウスタイルは関係ないだろうな、常考。
つか956はだいたいわかってんだろ、946・951あたりが正解じゃねーの。
んで、それが知りたかったことなのかい?
たとえばこの辺の内容とも同じ。
http://oshiete1.goo.ne.jp/qa3672380.html
IDないと誰が誰なのかわからなくて、めんどくせーな。
0967デフォルトの名無しさん
2008/02/14(木) 03:00:34>>963
こういうの、いらねーから。
0968デフォルトの名無しさん
2008/02/14(木) 03:00:460969デフォルトの名無しさん
2008/02/14(木) 03:01:50これがいわゆる、素人に毛が生えた素人というやつだな。
0970デフォルトの名無しさん
2008/02/14(木) 03:02:18君が紹介してやれよ
0971デフォルトの名無しさん
2008/02/14(木) 03:03:52お前以外はみんな俺
0972デフォルトの名無しさん
2008/02/14(木) 03:19:21GDI+を使うのがやはり便利なのだが、
初心者向けの文献はちょっと見当たらないな。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vbcon/html/vboriGDIFundamentals.asp
最近VC++のページがググッてもあまり出てこないんだよね。
MFC上でGDI+使うんであれば、
http://www.codeproject.com/KB/GDI-plus/gdi__and_mfc.aspx
使ってるのがVC6であれば、MSDNに
MFCのチュートリアル(10ステップくらいだったかな)とサンプルがあった記憶がある。
そこに図形描画の解説もあった。
0973デフォルトの名無しさん
2008/02/14(木) 03:21:36もういいから黙ってろ
0974デフォルトの名無しさん
2008/02/14(木) 03:32:42あくまでおれの基準だけど、
本格的でごりごりしたGUI構成とか、COMとかOLEとかやりたいときは、
アンマネージドで。つまり非CLRで。んで言語はVC++かな。しかもVC6を使う。
そのあたりは個人的にノウハウがたまっているからというのもある。
お手軽なアプリ作るならマネージドで行く。つまりCLR。んで言語はVB.Netかな。
たとえばDB関連など最新テクノロジー使うときはマネージドで行く。つまりCLR。
言語はVB.Netでいくけど、C#のときもある。
VC+2005でお手軽アプリを作りたいという条件自体が、おれの基準と違うんだな。
>>919
と同意見ということだね。
0975デフォルトの名無しさん
2008/02/14(木) 03:36:51ちょっと言い忘れた。
VC6のころは、C++関連の情報が主流だったけど、
2003とか2005とか2008とかの時代になると、C++関連の情報って激減している気がするんだよね。
ググッて情報が得られやすい環境を選択するというのが、けっこう生命線的に大事だと思う。
仕事だと開発環境選べないからもちろんそれでやるしかないわけだが、単なる遊びなんでしょ?
0976デフォルトの名無しさん
2008/02/14(木) 04:16:03同一人物かね
0977デフォルトの名無しさん
2008/02/14(木) 04:28:05で、結局君は具体的に何の図形を描きたいの?
○?△?□?
2D空間図形?それとも3D空間図形?
GDIで描画したいの?DirectXを使いたいの?
結局のところ何を教えて欲しいわけ?
0978デフォルトの名無しさん
2008/02/14(木) 08:43:11同じく2005でやろうと思ったんですが
'sprintf' の宣言を確認してください
「現在のコード ページ (932) で表示できない文字を含んでいます」
「fatal error C1083: include ファイルを開けません」
等色々要求されます
一応仕上がって出来上がるんですが…
0979デフォルトの名無しさん
2008/02/14(木) 10:31:01sprintf 関係はほかでも見ないか?例の sprinf_s のやつだよ。
VC自体あんまり使ったこと無いのか。
0980デフォルトの名無しさん
2008/02/14(木) 11:44:16有難うございました
0981デフォルトの名無しさん
2008/02/14(木) 11:58:38質問者じゃないっつーの。
KY
0982デフォルトの名無しさん
2008/02/14(木) 11:59:42同じく質問者じゃないっつうの
0983デフォルトの名無しさん
2008/02/14(木) 13:12:26下みたいな回答が多いのに逆切れも糞もない。
>927 : デフォルトの名無しさん:2008/02/13(水) 02:55:35
>プログラムで図形描きたいのですが手順が詳しく乗っているサイトありませんか?
>どのプロジェクト作ったらいいかも分からない状況です
>929 :デフォルトの名無しさん:2008/02/13(水) 03:29:07
>>>927
>Visual C++ 200X 画像プログラムやらなんやらと書いてある本でも買え
>何も知らないような奴がいきなりネットだけで知識を得ようとするな
0984デフォルトの名無しさん
2008/02/14(木) 13:30:43まあおちつけよ
0985デフォルトの名無しさん
2008/02/14(木) 13:32:00お前もな
0986デフォルトの名無しさん
2008/02/14(木) 13:43:47どのプロジェクト作ったらいいかも分からない状況です
0987デフォルトの名無しさん
2008/02/14(木) 13:47:04forでライン引いたら
0988デフォルトの名無しさん
2008/02/14(木) 13:52:13ピンポイントなサイトがあると本気で思ってるんだろうか
ネットを使うなら情報をかき集めて統合する事を覚えような
0989デフォルトの名無しさん
2008/02/14(木) 18:30:420990デフォルトの名無しさん
2008/02/14(木) 18:53:290991デフォルトの名無しさん
2008/02/14(木) 19:24:100992デフォルトの名無しさん
2008/02/14(木) 21:36:46動的に2次元配列にしたいのですが。
例えば
data[0]〜data[4]
data[0]〜data[4]
data[0]〜data[4]
data[0]〜data[4]
↓
動的
という感じにしたいのです。
悪あがきで
CArray<int[4],int[4]> arraydata;
とかやってもダメでした。
くぐってみると両方動的なものはありました。
typedef CArray<int, int> CIntArray;
CArray<CIntArray, CIntArray&> ar;
0993デフォルトの名無しさん
2008/02/14(木) 21:38:13とすれば役割は果たせますが、
これだと
data[0]
data[0]
data[0]
data[0]
↓
動的
data[1]
data[1]
data[1]
data[1]
↓
動的
data[2]
data[2]
data[2]
data[2]
↓
動的
みたいな感じになって最初のパターンより
フラグメンテーションが大きくなりそうな気がして
恐いのです。
よい方法があったら教えてください。
0994デフォルトの名無しさん
2008/02/14(木) 21:51:130995デフォルトの名無しさん
2008/02/14(木) 21:54:25ポインタのポインタではだめなの?
0996デフォルトの名無しさん
2008/02/14(木) 22:09:05詳しく
0997デフォルトの名無しさん
2008/02/15(金) 00:22:06共有ライブラリなどを全て静的にリンクさせて DLL などの外部ファイルに依存しない実行ファイルを作るにはどのような設定にすれば良いのでしょうか?
0998デフォルトの名無しさん
2008/02/15(金) 00:47:45くだらないことぐだぐだ言ってる暇あんなら、本でも紹介すればいいじゃねーか。
おれはGDI+は紹介した。VC6のTutorialも紹介した。
くだらねーんだよ。お前は何を出したんだ。
0999デフォルトの名無しさん
2008/02/15(金) 01:24:41CRTの静的ライブラリ版を使うにはコンパイルオプション/MT。
プロジェクトのプロパティ→構成→C/C++→コード生成→ランタイムライブラリ
リリースのほうを変更しないと意味ないからな。
ほかのライブラリはそれぞれマニュアルなどを見ろ。DLLしかなければご愁傷さま。
1000デフォルトの名無しさん
2008/02/15(金) 01:25:5210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。