★初心者にVisual C++を教えるスレ★ Part18
レス数が1000を超えています。これ以上書き込みはできません。
0001 ◆Manna2uCLg
2005/04/15(金) 13:33:14お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
http://www.geocities.co.jp/Beautycare/4965/public/template.html
http://myu.daa.jp/osiete/
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
【前スレ】
★初心者にVisual C++を教えるスレ★ Part17
http://pc8.2ch.net/test/read.cgi/tech/1107926989/
過去スレ、関連スレなどは>>2-5ぐらい。
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デフォルトの名無しさん
2005/04/15(金) 13:34:57■ MFC相談室 MFC12.dll■
http://pc5.2ch.net/test/read.cgi/tech/1096848771/l50
Win32API質問箱 Build27
http://pc5.2ch.net/test/read.cgi/tech/1106103119/
鬱だ氏のう DirectX (Part 15)
http://pc5.2ch.net/test/read.cgi/tech/1096649788/l50
C言語なら俺に聞け! Part 101
http://pc5.2ch.net/test/read.cgi/tech/1107128274/
C++相談室 part39
http://pc5.2ch.net/test/read.cgi/tech/1106527792/
C/C++の宿題を片付けます 40代目
http://pc5.2ch.net/test/read.cgi/tech/1107625122/
【初心者歓迎】C/C++室 Ver.13【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1104843249/
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ
http://www.microsoft.com/japan/msdn/library/
Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
http://www.google.co.jp/
【このスレの前身 VisualC++相談室 過去スレ】
part 1 http://piza.2ch.net/tech/kako/970/970607517.html
part 2 http://piza.2ch.net/tech/kako/981/981630730.html
part 3 http://piza2.2ch.net/tech/kako/993/993186053.html
part 4 http://pc.2ch.net/tech/kako/1002/10021/1002165477.html
part 5 http://pc.2ch.net/tech/kako/1006/10068/1006834463.html
part 6 http://pc.2ch.net/tech/kako/1011/10116/1011615035.html
part 7 http://pc.2ch.net/tech/kako/1017/10178/1017843192.html
part 8 http://pc.2ch.net/tech/kako/1022/10224/1022499000.html
part 9 http://pc5.2ch.net/tech/kako/1036/10368/1036897197.html
0006デフォルトの名無しさん
2005/04/15(金) 13:51:07乙
0007デフォルトの名無しさん
2005/04/15(金) 14:03:04もつ
0008デフォルトの名無しさん
2005/04/15(金) 17:58:55class A : public CObject{
virtual void Serialize( CArchive& ar ) ;
}
class B : public CObject{
virtual void Serialize( CArchive& ar ) ;
}
template< typename DATA > class CM : public CObject
{
private:
CMap< int, int ,DATA, DATA > m_map;
public:
virtual void Serialize( CArchive& ar ) ;
}
CM< A > CM_A;
CM< B > CM_B;
template < typename DATA > class CN : public CObject
{
private:
CArray < DATA, DATA > m_array;
public:
virtual void Serialize( CArchive& ar ) ;
}
CN < CM_A > CN_A;
CN < CM_B > CN_B;
0009デフォルトの名無しさん
2005/04/15(金) 18:02:00うまくできません。
どのように行えばよいか教えてください。
0010デフォルトの名無しさん
2005/04/15(金) 18:02:280011デフォルトの名無しさん
2005/04/15(金) 18:16:22DECLARE_SERIAL( A )
IMPLEMENT_SERIAL( A, CObject, 1 )
と記述すればよいと思っていたのですが
DECLARE_SERIAL( CN )
IMPLEMENT_SERIAL( CN, CObject, 1 )
と記入してもコンパイルエラーとなりますよね?
「クラスのテンプレート名で仮引数リストの指定がありません。」といわれます。
どのように記述すればいいのかが分かりません。
初歩的ですみません。。。
0012デフォルトの名無しさん
2005/04/15(金) 18:34:25これ実現しようとすると果てしなく面倒なことになりそう。
つか不可能かもしれん。
0013デフォルトの名無しさん
2005/04/15(金) 18:56:55地道に複数作ったほうが楽かもしれないですね。。。
CMapのArrayをもったクラスをつくりたかったのですが
蚤の脳ではできません。。。
0014デフォルトの名無しさん
2005/04/15(金) 23:15:460015デフォルトの名無しさん
2005/04/16(土) 03:05:040016デフォルトの名無しさん
2005/04/16(土) 11:15:48{ void func(int) {} };
struct B : public A
{
B() { func(0); } // (a)
void func() {}
};
A a;
a.func(0); // (b)
(a)のところで「C2660: 'func' : 関数が不正な 1 個の実引数をともなって呼び出されました」となります。
引数からA::funcが呼ばれることはわかると思うのですが、A::func(0)としてやらなければなりませんでした。
ところが(b)の方はそのまま通ります。
どういう意図でこういうことになっているのでしょうか?
0017デフォルトの名無しさん
2005/04/16(土) 11:43:09B::funcがA::funcを隠している。
Bの中にusing A::func;を書いてみろ
001816
2005/04/16(土) 11:51:00using A::func;を書いたらB::func()の方がC2660で呼べなくなりました。
つかクラス内からはA::funcが隠蔽されて、外からは両方見えるというのはどうしてなのでしょうか?
001916
2005/04/16(土) 11:57:18B b;
と書いたつもりが
A a;
となってました。
BのインスタンスからはA::funcは隠蔽されてますね。
失礼しました。
0020デフォルトの名無しさん
2005/04/16(土) 13:15:00ドラッグされたファイルを受け取って、そのファイルのアイコンをボタンに描画したいと思っているのですが、
アイコンの取得の仕方、描画の仕方はどのようにすれば良いのでしょうか?
HICON hIcon = ExtractIcon(AfxGetInstanceHandle(),path,0); // pathはファイルのフルパス
tipsサイトをうろついていたらこれでアイコンの取得ができるという説明を見かけたのですが、
あっていますでしょうか?
ボタンへの描画についてはオーナードローという方法でやればいいようなのですが、
どうにも要領がつかめませんorz
こうすればいい、というやり方がありましたらよろしくお願いします。
0021デフォルトの名無しさん
2005/04/16(土) 14:11:24VC++でも
.NETであったりMFCであったり空のプロジェクト生成であったりする違いは
ただ単にそれぞれがカバーしているライブラリの範囲の違いという認識であってますでしょうか。
具体的には、MFC使ったら、.NETに収録されてるクラス群は利用できない。
空のプロジェクトを生成した場合、MFC、.NETで使えるクラス群は利用できない。
こういう認識であってますか。
ここ勘違いしてるとかあったら指摘していただけるとうれしいです。
0022デフォルトの名無しさん
2005/04/16(土) 14:18:37空プロジェクト作成後にMFC用に自分で全部書いてもいいし
002321
2005/04/16(土) 14:22:52アドバイスありがとうございます。
>IDEの話でなら
そうです。Visual C++ the Spoke 使ってます。
プロジェクトを生成したら作成されるソースの違いなだけというわけですね。
>空プロジェクト作成後にMFC用に自分で全部書いてもいいし
こうすれば、空プロジェクトを生成してもMFCの提供するクラス群を使うことができると。
0024デフォルトの名無しさん
2005/04/16(土) 17:34:50以下のようなメッセージが出てアプリが実行できません。
シンボル情報なし
"hoge.exe"にはデバッグ情報が含まれていません(シンボルが読み込まれていません。)
デバッグを実行するにはOKを押してください。
指示通りにOKを押しても、何も反応がなく、アプリも実行されません。
プロジェクトの設定のどこかが変わってしまったためだと思うのですが、これって
どうやれば直るんでしょうか・・・
0025デフォルトの名無しさん
2005/04/16(土) 17:41:450026デフォルトの名無しさん
2005/04/16(土) 20:28:12フォームデザイナを使ってWindowsのインターフェース部分を作りながら、コード書いていく
という便利な作り方ができますが
MFCや、空でプロジェクトを生成した場合、基本的なコードだけが生成されてフォームは
どこにも見当たりません。
フォームデザイナって.NETを選択して生成した場合にのみ使用できるものなのでしょうか。
それとも、MFCや空でもどこかいじればフォームデザイナ使えるのでしょうか。
0027デフォルトの名無しさん
2005/04/16(土) 20:36:220028デフォルトの名無しさん
2005/04/16(土) 20:38:040029デフォルトの名無しさん
2005/04/16(土) 20:42:07003026
2005/04/16(土) 21:52:44.NETしかいじったことなかったのですが、一通り参考書やり終わったので自分でアイデアを出して
簡単なアプリを作ろうと思ったのよ。
で、そのアプリに、jpeg画像を表示する機能をつけようとしていたところ、CImageというクラスを発見。
ところがCImageは、MFCが提供するクラスらしい。
いつものように.NETを選択してプロジェクトを生成して作り始めたから
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\afxv_w32.h(18):
fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
こんなエラーが1つ表示されて先にすすめない。
「windows.hは、既にインクルードされてて、MFCアプリには必ずしもwindows.hは必要ない」
windows.h忘れてるよ。なら、つけたせばいいんだろうけど。
必要ないっていっても、ソースコードには#include "windows.h"なんて記述はどこにもないから
削りようもないし、しょうがないから、MFC選択してプロジェクト生成させて1から作り直したら
いいんじゃないかと考え付いたのよ。
ところがいざMFC選択して生成してみたところ、基本的なコードだけが生成されて、フォーム
らしきものは見当たらない。
なので、MFCはフォームデザイナ使えないのか。と思ったわけです。
MFC選択してプロジェクト生成させればCImageクラスがあっさり使えるんじゃないかと思ったのですが。
こういう場合、.NETで使える。別の画像表示クラスを探したほうが早いでしょうか。
CImageは使い方簡単そうだったから採用したんですが。
0031デフォルトの名無しさん
2005/04/16(土) 21:58:24他探せw
0032デフォルトの名無しさん
2005/04/16(土) 22:13:26おまえが言うフォームに近いものは
ダイアログベースのアプリかもしれない
003326
2005/04/16(土) 22:13:25#include "atlimage.h"
#include "afxwin.h"
をインクルードして
CImage img;
img.Load("sample.jpg");
CDC *pDC = CDC::FromHandle( img.GetDC() );
cdc.BitBlt( 0, 0, img.GetWidth(), img.GetHeight(), pDC, 0, 0, SRCCOPY );
img.ReleaseDC();
書いて、上のレスに記述したエラーが発生。
しょうがないから、他を探すということで
http://wisdom.sakura.ne.jp/system/msnet/msnet_win13.html
を参考に
Graphics g = e.Graphics;
Image img = new Bitmap("sample.jpg");
g.DrawImage(img , 0 , 0);
に書き換えたけど、なんとこれも上のレスに記述した同じエラーが発生した。
public static void Main(string[] args) {
Application.Run(new WinMain());
この部分の記述がいるのか。
Graphics g = g.Graphics;の部分はFormメソッドの外に書かれてる。
メニューの開くを押したら表示されるようにしたいのに(T T)
クラス発見しても全然使いこなせない。基本的なことがどうも消化しきれてないっぽい。
悔しい。
0034デフォルトの名無しさん
2005/04/16(土) 22:20:38基本から勉強した方がいいんじゃないだろうか
003526
2005/04/16(土) 22:33:20>>32
他の件でググって読んだページにたまたまMFCに関する記述が書いてあることがあって
そういえばMFCの記述があるところにダイアログベースがどうのとか書いてあった記憶がある。
MFCでプロジェクト生成するとダイアログベースのアプリしか作れないということなのかな。
単に画像表示させるだけのアプリだから、ダイアログで十分だなとは思うけど。
もうわけがわからなくなってきた。
開発環境の操作方法を勉強しながらアプリも1本作るという内容の参考書を一通りやって
さあ、自分で作ってみるぞと思ったものの。
用意されてるクラスを使うだけでもこの有様だから。
C++は、.NETとかMFCとかややこしい。
ここらへんもっとつっこんで勉強したほうがいいかもと思った。
ググって見つけたサンプルコードそのままコピペしても必ずといっていいほどエラーがでる。
http://wisdom.sakura.ne.jp/system/msnet/index.html
の解説も.NETだけど。よくみたらフォームとか部品を自分で記述してるし。
.NETって書いてるから、これ参考にしたら解決するだろうと思ったのに(T T)
フォームデザイナで部品を自分でフォームにドラッグしていってちょちょいと作ってって方法で
やったから。他の手法で作ったものを参考にしても自分のアプリに応用できない。
>>34 さんがいうように、自分で考えたアプリを作ってみるという段階じゃないのかも。
統合開発環境の操作覚えて、MSDNやgoogleで欲しい機能を実現できるクラスを探して、使い方見て
自分のアプリのコードに貼り付ければいけると思ったのに(T T)
0036デフォルトの名無しさん
2005/04/16(土) 23:14:40003726
2005/04/16(土) 23:27:33どこらへんを勉強すればいいのか親切に教えてくれてありがとう。
実は、とはいってもどこらへんから優先的に学習すればいいの?という疑問がわいてたので
0038デフォルトの名無しさん
2005/04/16(土) 23:30:57したがって、ダイアログはドラッグアンドドロップで作れるが、
それ以外のwindowアプリケーションは、コード書くしかない。
そういう仕様。
0039デフォルトの名無しさん
2005/04/16(土) 23:39:05004026
2005/04/17(日) 00:11:49>>38
MFCや空だと、どこ探してもフォームデザイナ使えないと思ったら仕様なんですね。
そもそも、GUI部品をゴリゴリコード書くのが面倒くさいから、統合開発環境買ったという
いきさつがあるので。どうしてもGUI部品を楽に作りたいと思ったら.NET使うしかないということか。
>>39
今回の件でC++って、.NET MFC とかいろいろあって覚えるまでがちょっと大変とわかった。
C#って.NETだから、一度どれかの参考書なりサイトでマスターしてしまえば
クラス調べるときに、C++のように、これはMFCの提供するクラスだから…、とか
これは空で作ったものっぽいから…。とかいちいち考える必要ないだろうなとは思う。
自分の考えたアプリが完成すればいいわけだから、完成は早いにこしたことはないし
作りやすいにこしたことないし、調べやすいにこしたことはないと思う。
C#がそれを満たしてくれる言語なのかは、やってみなければわからない部分はあると思うけど。
>>39 さんの。向いている。「絶対」と。指摘してくれてるわけだから
使用言語をC#に変えてみようかと思います。C#の方が作る過程もスマートなんじゃないかと
思えてきた。
0041デフォルトの名無しさん
2005/04/17(日) 01:13:59ならC#かVBがいいかと
004226
2005/04/17(日) 12:56:27アドバイスありがとう。
VBも.NETになってからそこのところがどうなったかはわかりませんが
VBはかゆいところに手が届かなそうといったイメージがあるのでC#にします。
0043デフォルトの名無しさん
2005/04/17(日) 18:02:02つ[ Delphi ]
0044デフォルトの名無しさん
2005/04/17(日) 18:20:370045デフォルトの名無しさん
2005/04/17(日) 20:24:04剥けているかいないか、それが問題だ。
0046デフォルトの名無しさん
2005/04/17(日) 21:52:55表示させるようにするプログラムを作りたいのですが、
どのように作ればよいのか、アドバイスお願いできませぬでしょうか・・・
0047デフォルトの名無しさん
2005/04/17(日) 22:45:52MDIの場合はダメかもわからんです。
0048デフォルトの名無しさん
2005/04/17(日) 22:57:01ありがとうございました m(_ _)m
0049デフォルトの名無しさん
2005/04/18(月) 02:00:58ビットマップは正しくインポートされましたが、ビットマップは256色以上含んでいるためビットマップエディタへ読み込めません
と出るのですが、どういうことでしょうか?表示はできるみたいなんですが・・・
また、リソースビットマップの透過はどうやるのでしょうか?
0050デフォルトの名無しさん
2005/04/18(月) 07:02:46やっぱり使う直前に::LoadLibrary()して、使い終わったら即::FreeLibrary()しなきゃ
なりませんか?
自前のアプリの初期化関数(OnInitDialog()とか)でLoadLibrary()してから
メンバ変数に関数ポインタせっとしてメソッドで使いまくり、終了するときに
OnDestroy()で解放できたらオーバーヘッド軽くなりそうな気がするんですが。
0051デフォルトの名無しさん
2005/04/18(月) 08:24:15使う直前にLoadLibraryして、使い終わったら即FreeLibraryなんて、誰に教わったの?
プロセス内で最初に1回LoadLibraryしたら、それっきりでいい。
FreeLibraryはしなくてもいい。
それで問題があるようなら、そのDLLの作りのほうがマズイよ。
005251
2005/04/18(月) 08:24:400053デフォルトの名無しさん
2005/04/18(月) 09:44:51保存されてるパレットが256色以上になってるんじゃない?
そのビットマップのプロパティを見ると分かるんじゃなかったかな。
0054デフォルトの名無しさん
2005/04/18(月) 13:12:100055デフォルトの名無しさん
2005/04/18(月) 15:18:06VC++6とまったくインターフェースに互換性がなくて困ってます(なんですかソルーションて)
デフォルトのコンパイル/リンクオプションはどこで設定すればいいんでしょうか
また、プロジェクト専用のオプションはどこで設定すればいいんでしょう
教えてください
0056デフォルトの名無しさん
2005/04/18(月) 16:08:47とりあえず1時間くらい、いじりまわせ。
0057デフォルトの名無しさん
2005/04/18(月) 16:15:35なんかIE触ってるみたいで気持ち悪いです…
汎用性ばかり重視して操作性を削るってなに考えてるんだMSは…
0058デフォルトの名無しさん
2005/04/18(月) 16:32:11見っけられないってちょっとおかしいぞ。
ホントにVC++6使ってのか?
俺も最初は戸惑ったけど、すぐに分かったぞ。
0059デフォルトの名無しさん
2005/04/18(月) 16:38:330060デフォルトの名無しさん
2005/04/18(月) 17:02:41チェックボックスとかじゃなくて手打ちなんですがそれで正解ですか
プロジェクト作るたびにわざわざ/I とか /MTとか打ちたくないんです
インクルードパスなんて決まってるしマルチスレッドアプリしか作らないし
0061デフォルトの名無しさん
2005/04/18(月) 17:07:320062デフォルトの名無しさん
2005/04/18(月) 17:33:07たぶんそれパチモノ。
0063デフォルトの名無しさん
2005/04/18(月) 17:36:07学校に入ってるやつですよ
0064デフォルトの名無しさん
2005/04/18(月) 19:00:30Cの勉強で最初に作るようなごくごく簡単な(Hello,worldの表示)プログラムをCで組みたいのですが
プログラムに間違いは無いにも拘らずエラーが出てビルドできません。
実行するビルド コマンド ラインがありません。
メイクファイル プロジェクト動作を実行しています。
[プロジェクト名] : error PRJ0003 : ' の起動中にエラーが発生しました。
実行するビルドコマンドラインがありません。
↑ここが問題なのは分かっているのですが、どう対処して良いのか分かりません。
どなたか教えていただけないでしょうか。
0065デフォルトの名無しさん
2005/04/18(月) 19:10:310066デフォルトの名無しさん
2005/04/18(月) 19:33:02新規に『CButton』を継承したクラス『CMButton』を作成、そこにWM_DROPFILESをインプリメント(?)して、
ダイアログクラスにCMbutton型のオブジェクト『m_Button』を宣言。
そしてダイアログクラス内の『OnInitDialog()』で『m_Button.SubclassDlgItem(IDC_MBUTTON,this)』
を実行して、サブクラス化してみたのですが、
起動直後に『wincore.cpp』内の『ASSERT(FromHandlePermanent(hWndNew) == NULL);』の所でエラーが出ます。
なので『WindowProc』をオーバーライドして、『WM_CREATE』が送られたときにサブクラス化してみると、
エラーは出なくなったものの、ドラッグしても『CMButton』の『OnDropFiles』が機能しません。
お助けください…orz
●ヘッダファイル
class CMButton :public CButton
{
public:
CMButton(void);
~CMButton(void);
protected:
//{{AFX_MSG(CMButton)
afx_msg void OnDropFiles(HDROP hDropInfo);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
●cppファイル
BEGIN_MESSAGE_MAP(CMButton, CButton)
//{{AFX_MSG_MAP(CMButton)
ON_WM_DROPFILES()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CMButton::OnDropFiles(HDROP hDropInfo)
{
}
0067デフォルトの名無しさん
2005/04/18(月) 20:51:49006866
2005/04/18(月) 21:11:35レスありがとうございます。
書いていませんでしたが、 DragAcceptFiles() はダイアログクラス内の OnInitDialog() で宣言しています。
ボタンコントロールのプロパティの Accept Files も試してみましたが、どちらも機能しませんでした。
というかドラッグの受付自体は機能しているんですが、受け付けた後の
void CMButton::OnDropFiles(HDROP hDropInfo)
の処理が機能していないのです。
0069デフォルトの名無しさん
2005/04/18(月) 21:11:57親クラスを指定しない場合はNullにするとあったので
MessageBox(Null,"失敗しました","error",MB_ICONERROR | MB_OK);
としたのですが、4つの引数を持つことはできませんと言われてコンパイルエラーとなります。
Nullは定義されていないのかと疑って
MessageBox(,"失敗しました","error",MB_ICONERROR | MB_OK);
MessageBox(\0,"失敗しました","error",MB_ICONERROR | MB_OK);
MessageBox(0,"失敗しました","error",MB_ICONERROR | MB_OK);
と試しましたがいずれもダメでした。
調べたところ引数は4つのハズなのですがどこがどう間違っているのでしょうか?
0070デフォルトの名無しさん
2005/04/18(月) 21:14:22::MessageBox(NULL, TEXT("失敗しました"), TEXT("error"), MB_ICONERROR | MB_OK);
0071デフォルトの名無しさん
2005/04/18(月) 21:46:31MSDNライブラリでキーワード「MessageBox」を見れば、すぐわかるものを・・・。
0072デフォルトの名無しさん
2005/04/18(月) 21:52:28これ通るだろ
0073デフォルトの名無しさん
2005/04/18(月) 22:33:45CWnd::MessageBoxってオチだろ。
0074デフォルトの名無しさん
2005/04/18(月) 22:57:03質問させて頂きました。
MessageBox(0,"失敗しました","error",MB_ICONERROR | MB_OK);
ではやはり引数が4つでエラーとなります
解決策としては第一引数を完全に省くことで何故かできました。
CWnd::MessageBox
CWndに定義されているmessageBOxとそうでないものがあるようですね
調べてみます
どうもです
0075デフォルトの名無しさん
2005/04/18(月) 23:16:220076デフォルトの名無しさん
2005/04/19(火) 00:35:17なんでMSDNで調べたのにわからないの?
MessageBoxを見ようとすると、候補がずらずらと出てくるじゃないか。
Win32API、MFCのCWnd、MFCのCWindow、WFC、などなど。
自分が呼んでいるMessageBoxが、いったい何なのかくらい、把握しとけって。
つーか、C++わかってないだろ。VC++以前の問題だよ。
普通は、>>70さんの書き込みで理解できるぞ。
0077デフォルトの名無しさん
2005/04/19(火) 01:21:18一応ここは初心者スレだぞ
0078デフォルトの名無しさん
2005/04/19(火) 01:39:20Win32API、MFCのCWnd、MFCのCWindow、WFC、などなど
があることがわかっただけでも収穫でした
Javaで簡単なiアプリを作ってただけだったのでcとwindowsAPIを
平行してやっているのですが、なかなか厳しいのが現状です
0079デフォルトの名無しさん
2005/04/19(火) 02:58:060080デフォルトの名無しさん
2005/04/19(火) 02:59:16とはいえ、::の意味を知らない質問者にも困るが・・・。
0081デフォルトの名無しさん
2005/04/19(火) 03:47:20::CreateWindow←だからって初心者スレらしく全角でもいいが
コピペして動かないとか言われても困るか…
0082デフォルトの名無しさん
2005/04/19(火) 11:01:09どうしたらいいですか?
例えば ?OpenSoftkeyPallete@@YAPAUHWND__@@PAU1@@Z の場合。
0083デフォルトの名無しさん
2005/04/19(火) 11:08:19その関数の呼び出し方法に則って呼び出せば良いだけじゃない?
0084デフォルトの名無しさん
2005/04/19(火) 16:09:27エラーが起こったときは、return 1 じゃなくて、return 0 で良いのでしょうか?
0085デフォルトの名無しさん
2005/04/19(火) 19:39:41何の話だ?
0086デフォルトの名無しさん
2005/04/19(火) 21:06:27と思うのですが、何から始めていいのかわけがわかりません・・・
C++の入門書とVisualC++.NETの入門書一体どっちを買えばいいのですか?
0087デフォルトの名無しさん
2005/04/19(火) 21:22:120088デフォルトの名無しさん
2005/04/19(火) 21:28:08でも、.NETの本ってC++がある程度わかった人向けのような気がする
のですが、気のせい?
0089デフォルトの名無しさん
2005/04/19(火) 21:36:560090デフォルトの名無しさん
2005/04/19(火) 21:41:40C++の本ではなく.NETの本じゃないとなにか困るんですか?
0091デフォルトの名無しさん
2005/04/19(火) 21:45:58NETの入門書の最初の方をみて書いてある内容自体何がなんだか
サッパリならC++の入門書を買ったほうが良いだろうし。
0092デフォルトの名無しさん
2005/04/19(火) 21:55:13俺はvcvars32.batを利用してコマンドラインから使ってる。
ところで、どこかにVCのデバッガの解説サイトって無いですか?
0093デフォルトの名無しさん
2005/04/19(火) 21:59:46解説の必要があるのかどうか・・・
0094デフォルトの名無しさん
2005/04/19(火) 23:03:46詳しく
0095デフォルトの名無しさん
2005/04/19(火) 23:06:450096デフォルトの名無しさん
2005/04/19(火) 23:25:200097デフォルトの名無しさん
2005/04/19(火) 23:28:170098デフォルトの名無しさん
2005/04/20(水) 00:24:15なんで?
0099デフォルトの名無しさん
2005/04/20(水) 01:04:53C++の初心者ならC++の入門書
VC++.NETの初心者ならVC++.NETの入門書
どちらも初心者なら、両方の入門書をそれぞれ。
C++はプログラム言語
VC++.NETは処理系
この違いを区別せず、一度にやりましょう、という本もあるけどね。
0100デフォルトの名無しさん
2005/04/20(水) 16:02:23MFC を使って組んでいます。
実行中に 「半角/全角」を押すと、辞書がONになり、
キーを押したときの処理を奪われてしまいます。
(生成したウィンドウの左上に打った文字が出てくる)
これを回避するにはどうすればいいでしょうか。
「半角/全角」を押しても辞書がONにならないように……。
よろしくお願いします。
0101デフォルトの名無しさん
2005/04/20(水) 16:24:530102デフォルトの名無しさん
2005/04/20(水) 16:29:18?辞書?
0103デフォルトの名無しさん
2005/04/20(水) 16:36:21「プリプロセッサの定義」に「WINVER=0x040A」を追加
#include <imm.h>
#pragma comment(lib,"Imm32.lib")
ImmDisableIME(0);
0104デフォルトの名無しさん
2005/04/20(水) 17:09:26IME をキーに調べればよかったんですね。
正常に動きました、ありがとうございました。
0105デフォルトの名無しさん
2005/04/20(水) 17:13:41どなたか知ってる方居ましたら教えていただけないでしょうか。
0106デフォルトの名無しさん
2005/04/20(水) 17:19:42プロジェクトのプロパティなどで、出力だかなんだかのタブにあるコンボボックスで
「アセンブラのみ」などを選択すればいい。
0107デフォルトの名無しさん
2005/04/20(水) 17:26:58見つけることが出来ました。ありがとうございます。
追加なのですが、コマンドラインから実行する際にもオプションで出来るのでしょうか?
0108デフォルトの名無しさん
2005/04/20(水) 17:38:49小一時間探してるんだがみつからねorz
たしけてorz
0109108
2005/04/20(水) 17:42:450110デフォルトの名無しさん
2005/04/20(水) 17:45:20ツール->オプション->テキストエディタ
0111110
2005/04/20(水) 17:47:570112108
2005/04/20(水) 17:49:42これがないとなんだか気持ち悪い…
0113デフォルトの名無しさん
2005/04/20(水) 18:45:06もしかして、ROM-BASICでauto使う気分なんだろか。
>>107
設定画面をよく見よう。設定の脇に(/FA)とか書いてないか?
0115デフォルトの名無しさん
2005/04/20(水) 19:42:10ビットマップダンプイメージをポインタでそのまま操作できる画像表示クラスはありますか?
0116デフォルトの名無しさん
2005/04/20(水) 20:01:560117デフォルトの名無しさん
2005/04/20(水) 20:31:580118デフォルトの名無しさん
2005/04/20(水) 20:45:18無い。
DirectdrawのBltFastメソッド使え。
0119デフォルトの名無しさん
2005/04/21(木) 13:41:26>HEAP[○○.exe]: HEAP: Free Heap block 3e61d0 modified at 3e61f8 after it was freed
このようなエラーが出ました。解放済みメモリにアクセスしたのが悪いのは
わかりましたが、それがソースプログラムのどの部分が原因で起こっているのかを
どうやって探せばいいのでしょうか?
VS上の呼び出し履歴では ntdll.dll!7c989d18() のようなものばかり並んでいるので、
どのクラス・関数でこのエラーが起きたのかもわかりません。
ソースは300ファイルぐらいありますので、「怪しいところをよく眺めて見る」という
対処法ではとても苦しいです。
合理的な検出が出来るようなツールの使い方もしくは検出テクニックを
教えていただけたらありがたいです。
なお、STLport4.6.2,boost1.32を使用しています。
0120デフォルトの名無しさん
2005/04/21(木) 13:54:580121デフォルトの名無しさん
2005/04/21(木) 14:42:48free()を検索して、引き数をその直後でNULLにしておく。
Ex.
free(foo);→free(foo);foo = NULL;
まともなエディタを使えば一気に全部置換できるからそんなに手間でもなかろう。
#VisualStudioしか使えない? がんばってね。
0122デフォルトの名無しさん
2005/04/21(木) 15:45:43tryが認識されません。
設定の例外処理もちゃんと有効にしているのですが。
もしかして、なにかincludeしないといけないのでしょうか?
ちなみに私はVCコンソールアプリケーションでやっています。
0123デフォルトの名無しさん
2005/04/21(木) 15:49:15>tryが認識されません。
具体的に。エラーメッセージが出たのならコピペ。
0124デフォルトの名無しさん
2005/04/21(木) 15:49:25#ただ「tryが認識されません」と書かれても、あなたがどんなコードを書いたのか誰にもわかりませんから。
0125デフォルトの名無しさん
2005/04/21(木) 15:52:11error C2065: 'try' : 定義されていない識別子です。
上記のエラーが出ました
0126デフォルトの名無しさん
2005/04/21(木) 16:02:25まずは該当部分を貼り付けろ。
0127デフォルトの名無しさん
2005/04/21(木) 16:05:03コードがかなり長いので一部のみ
printf("\t文字を入力してください(zで終了):");
try{
gets(str12);/*値を取得してstr12に格納*/
}catch(...){
printf("エラー");
}
0128デフォルトの名無しさん
2005/04/21(木) 16:24:07上記のコードでは一部過ぎてわからないと思うので全部の関数を丸ごと載せます。
長いので2回に分けて記述します
void mo12(void){
char str12[5]={0};/*結果を入れてもらう変数*/
int strbl;/*strlenghtの結果を入れる為の変数*/
putchar('\n');
for(;1;){
printf("\t文字を入力してください(zで終了):");
try{
gets(str12);/*値を取得してstr12に格納*/
}catch(...){
printf("エラー");
break;
}
0129デフォルトの名無しさん
2005/04/21(木) 16:25:13上記のコードでは一部過ぎてわからないと思うので全部の関数を丸ごと載せます。
長いので2回に分けて記述します
//str12[0]='z';
strbl=strlen(str12);//文字の最大数を測定
//元の値の表示
if(strbl>5){er=-3;error1(&er);break;}
putchar('\t');
for(i=0;i<strbl;i++){printf("%X ",str12[i]);}
printf("が入力されました\n\t");
for(count=0;count<strbl;count++){
er=mondai12(str12,count);/*文字をHEXコードに変換し、上位ビットと下位ビットを入れ替える関数*/
if(er<0){/*エラー処理*/error1(&er);}else{
//結果の表示
if(count==0){/*最初のみ表示*/printf("上位ビットと下位ビットを入れ替えると");}
printf("%X ",er);
}
}
printf("\n\n");
for(count=0;count<strbl;count++){/*大文字か小文字のzを検索該当する値があれば-5をerに代入*/
if(str12[count]==0x7a||str12[count]==0x5a){
er=-5;}
}
if(er==-5){break;}
}
}
0130デフォルトの名無しさん
2005/04/21(木) 16:27:180131デフォルトの名無しさん
2005/04/21(木) 16:28:28C++の質問はC++のスレへどうぞ
0132デフォルトの名無しさん
2005/04/21(木) 16:31:22このスレではないのなら別のスレで聞いてきます。
ありがとうございました
0133デフォルトの名無しさん
2005/04/21(木) 16:39:21移動するならこっちとか。
C++相談室 part40
http://pc8.2ch.net/test/read.cgi/tech/1113408957/
ソースの拡張子が*.cになってたりしないか?
0134デフォルトの名無しさん
2005/04/21(木) 16:48:450135デフォルトの名無しさん
2005/04/21(木) 16:50:51それじゃc++の機能が使える分けないじゃん。
*.cppに変えてもう一回試してみ。
0136デフォルトの名無しさん
2005/04/21(木) 16:55:55.cppに変えたら機能しました。
教えていただきありがとうございました。
0137デフォルトの名無しさん
2005/04/21(木) 18:04:000138デフォルトの名無しさん
2005/04/21(木) 18:04:450139デフォルトの名無しさん
2005/04/21(木) 18:45:19VC++に関係ない一般的なC言語での話は>>121さんがしてくれてるので、
私はVC++に特化した、より便利な方法を紹介します。
VC++にはデバッグ ヒープというものがあります。
そのようなエラーメッセージが出るのは、
問題を発見するためのデバッグ ヒープのメカニズムがうまく働いたからです。
まずは、MSDNライブラリで、
_CrtSetDbgFlag関数や、それに関連したところをあちこち読んでください。
具体的なやり方ですが・・・
そのエラーメッセージは、無効なヒープに書き込みの形跡があるかチェックした時に出ます。
チェックを行うのは、通常は、プログラムの終了時です。
(なので、その時のコールスタックを見ても、問題箇所はわかりません。)
そこで、
_CrtSetDbgFlag関数で_CRTDBG_CHECK_ALWAYS_DFを指定するか、
_CrtCheckMemoryをあちこちに挿入するなどして、
プログラム実行中に、ヒープのチェックをさせます。
そうすることで、どこまではチェックでエラーが出ず、
どこまで行くとチェックでエラーがでるかで、問題の範囲を絞りこむことができます。
便利のために、すべての関数の入り口と出口に、
FUNC_IN(funcname)、FUNC_OUT(retvalue)、といったマクロを仕込んでおくと、
いざという時に、チェックルーチン呼び出しを容易に仕掛けることができますよ。
ちなみに、毎回同じアドレスになるなら、デバッガでブレークポイントを張れば、
すぐに、そのアドレスに書き込んでいる箇所を発見できるかもしれません。
0141139
2005/04/21(木) 18:49:20VC++自体に、メモリリークやヒープエラーの検出機能があるわけだけど、
それを使うのが面倒ならば、
CompuwareのBoundsChecker
のようなツールを使うと、ソースコードに手を入れずに、
同じような検出をしてくれます。
BoundsCheckerは単体売りもあるけど、他のツールとセットになったもののほうがお買い得。
無償バージョンアップの年間保守料金もあるけど、そんなにバージョンアップしないので、
毎回買うのと同じか、かえって高くつくので、予算計画が立てやすい以外にはメリットないかも。
0142139
2005/04/21(木) 19:07:37もちろん、freeしたポインタをNULLにしておくのは、ぜひやるべきです。
さっくりNULLポインタ例外で問題箇所を発見できる可能性が高いですから。
問題は、ポインタをコピーして覚え続けている人がいる、ということです。
そういう場合に、デバッグ ヒープが必要になるんです。
0143デフォルトの名無しさん
2005/04/21(木) 19:08:130144デフォルトの名無しさん
2005/04/21(木) 19:20:400145デフォルトの名無しさん
2005/04/21(木) 21:43:010146デフォルトの名無しさん
2005/04/21(木) 22:32:390147デフォルトの名無しさん
2005/04/22(金) 00:00:46一度に読み込むバッファ長を越えた行を読み込むと、eof()がきちんと認識されないみたいなんです。
例えば・・・
const int BUFLEN = 10;
char buf[BUFLEN];
ifstream file("hoge.txt");
while ( file.eof() == false )
{
file.getline(buf, BUFLEN);
cout << buf << endl;
}
↑では、10文字を越える文字数を読み込むと、その後は無限ループになってしまいます。
BUFLENを1000などの大きめの数字にしとけば問題ないですが・・・
これってgetline()の仕様なんでしょうか?
0148デフォルトの名無しさん
2005/04/22(金) 01:01:55市販のVisual C++はどう違うんでしょうか?
0149デフォルトの名無しさん
2005/04/22(金) 01:32:120150デフォルトの名無しさん
2005/04/22(金) 01:35:540151デフォルトの名無しさん
2005/04/22(金) 09:37:20C++スレで教えてもらえば?
0152デフォルトの名無しさん
2005/04/22(金) 11:18:40エラーは、'func' : 2 のオーバーロードは 1 番目の引数を 'char' から要求の型に変換できません。(新しい機能 ; ヘルプを参照)
と出ています
コードが長い為一部省略します
#include<stdio.h>
#define RESULT_OK 0
int main(void){
char str3_1=61;
char str3_2=62;
func(str3_1,str3_2);
}
char func( char *buffp ){
char cnt=0;
cnt++;
return cnt;
}
char func( char *destp, char* srcp ){
char rtn = RESULT_OK;
return rtn;
}
0153デフォルトの名無しさん
2005/04/22(金) 11:36:52うまくいってないのはオーバーロードじゃない。
char* 型の引数に char を指定して一体何をやりたいのかと。
0154デフォルトの名無しさん
2005/04/22(金) 11:38:58すみません、一部訂正します。
func(str3_1,str3_2);
↓
func(&str3_1,&str3_2);
0155デフォルトの名無しさん
2005/04/22(金) 11:53:06C++スレで教えてもらえば?
0156デフォルトの名無しさん
2005/04/22(金) 11:57:23ある意味初心者的な質問だと思うのですが。
0157デフォルトの名無しさん
2005/04/22(金) 12:03:22ここでもいいけど、先ずはそのアホさ加減を何とかしてくれ。
>152のエラーメッセージでは、引き数がcharだと言っている。
実際コードもfunc(str3_1,...でcharを渡している。
ところが>154ではfunc(&str3_1,...だと言う。
それならば、>152のようなエラーメッセージになるはずがない。
0158デフォルトの名無しさん
2005/04/22(金) 12:05:48>>152のエラーはこれで出なくなるはずだが。
0159デフォルトの名無しさん
2005/04/22(金) 12:24:11すみません、実行してみたら、エラーが出なくなってました。
よく確認、しなくてすみませんでした。
お答えいただきありがとうございました。
0160デフォルトの名無しさん
2005/04/22(金) 12:28:22二度と来るな!!
0161デフォルトの名無しさん
2005/04/22(金) 12:28:29しかし、どうでもいいけど全貌を見たくなくなるような小汚いソースだな。
0163デフォルトの名無しさん
2005/04/22(金) 19:08:29言語と標準ライブラリと処理系、この3つの区別くらいしてくれ。
というか、区別をしてない解説書を読むのはやめてくれ。
0164163
2005/04/22(金) 19:09:30×標準ライブラリ
○ライブラリ
標準ライブラリでも、サードパーティでもいいが、
このスレで扱うライブラリは、MFCやATLなど、Visual C++特有のものだろ。
0165デフォルトの名無しさん
2005/04/22(金) 22:39:48スレだとばかり思っていた2005春
0166デフォルトの名無しさん
2005/04/23(土) 08:40:29ゲームが作りたくて、久しぶりにプログラムを組んだのですが、
いきなりLoadImage関数で詰まってしまっています。(SDKです)
case WM_CREATE
hbmp = (HBITMAP)LoadImage( hInstance, "gazou.bmp",
IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE );
// hInstanceはWinMainにて保存しています。NULLではありませんでした。
FormatMessageで調べると"パラメータが正しくありません"と返ってきてしまいます。
ヘルプを見てもどこが悪いか分かりません。
LoadImageのDesired引数等を変えたりして1、2時間この1行で悩んでいます。。
おまぬけな質問ですが、どなたか教えてくださいませ。
0167デフォルトの名無しさん
2005/04/23(土) 08:58:100168デフォルトの名無しさん
2005/04/23(土) 09:07:32インスタンスハンドルはリソース用だからNULLでいいんじゃないか?
0169デフォルトの名無しさん
2005/04/23(土) 09:11:05CreateWindowExを呼んだときに指定したインスタンスハンドルを入手できる。
0170デフォルトの名無しさん
2005/04/23(土) 09:29:19http://www.gnu.org/software/ddd/
0171デフォルトの名無しさん
2005/04/23(土) 09:49:350172166
2005/04/23(土) 10:58:31昔散々やったことなので、時間が勿体無くて。。
他の人に聞くと一瞬で解決することが時々あるので質問させてもらいました。
>>168
リソースからロードする時はNULLで良い様な気がします。
>>169
WM_CREATEのlParamがCREATESTRUCT構造体へのポインタになってるんですね。
そういえばそんな記憶が。。
>>171
NULLでは駄目でした。
多くのレスありがとうございました。
もう少し悩んでみます。
P.S もしかして環境が悪いのでしょうか?
WindowsME&VC++6.0です。
0173デフォルトの名無しさん
2005/04/23(土) 11:00:42詳しく
0174171
2005/04/23(土) 12:07:04ハァ?(゚д゚)
LR_LOADFROMFILE指定してんのに、何リソースからロードする時とかNULLではダメでしたとか言ってんの?(゚д゚)
MSDN見たりとか、GetLastError→FormatMessageしてエラー見たりとかしたのか?
時間が勿体無くてとか、他の人に聞くと一瞬で解決したとか
甘えすぎなんだよ
0175デフォルトの名無しさん
2005/04/23(土) 12:12:040176デフォルトの名無しさん
2005/04/23(土) 12:13:200177デフォルトの名無しさん
2005/04/23(土) 12:13:47モチツケ
FormatMesageは既に明かしている。(>>166)
0178170
2005/04/23(土) 12:23:34Visual Studio のデバッガだとリストとかのデータ構造を使ってるときに、
今実際にどういう値が入ってるのか把握するのが大変なので、
ttp://www.gnu.org/software/ddd/all.png
こんな感じに表示してくれるのがあったらいいなぁと思って書いてみました。
0179デフォルトの名無しさん
2005/04/23(土) 12:30:34よそへ行ってくれ
0180デフォルトの名無しさん
2005/04/23(土) 12:47:19インテリセンスの事だけど。
CreateWindow( xxx, xxx...と書いている時にはパラメータヒントが出てるんだが
他の行等にフォーカスし、その後また続きを書き始めようとすると
最初の括弧を書かないと、今は表示されません。
これを引数の","(コンマ)を入力するとヒントが出てくるようにはなりませんかね?
VBいぢっていた時は、これでヒントが出てきたので少し便利ですた。
0181デフォルトの名無しさん
2005/04/23(土) 12:54:13編集 → 一番下
0182デフォルトの名無しさん
2005/04/23(土) 13:02:17すまん、ついカッとなってしまったorz
>>172
まぁなんていうか、MSDN熟読しろ
0183デフォルトの名無しさん
2005/04/23(土) 13:10:20そういやショートカットがあったな。。
さんくす。コンマじゃぁ無理っぽいけど、まぁ慣れるようにします。
0184デフォルトの名無しさん
2005/04/23(土) 17:00:17別のソリューションに移動またはコピーしたいんですが、どうやればできますか?
0185デフォルトの名無しさん
2005/04/23(土) 17:23:27コピー元ソリューションの対象プロジェクトファイル(*.vcproj)をコピー先ソリューションのディレクトリにコピー。
コピー先ソリューションで既存項目の追加で対象プロジェクト(勿論コピーしたもの)を追加。
#但し、プロジェクト内の各ファイルについては適宜コピーするかプロジェクトファイルをテキストエディタで編集して相対パスにする。
##プロジェクトファイルを直接複数のソリューションに追加するのはやめた方がいい(若しくはできない)が、ソースファイルは共有可能。
0186デフォルトの名無しさん
2005/04/23(土) 21:02:51ありがとうございます。
IDE上からは出来ないんですね。
0187デフォルトの名無しさん
2005/04/23(土) 21:26:47XPでプログラムを作ってw2000にファイルを
持って行きそこで実行するとエラーが出てしまいます。
「CLRエラー」ですとか「ほにゃららのハンドルされていない
例外が不明なモジュールです」などと表示されます。
原因はなんなのでしょうか?中学生ですけど教えてください。
0188デフォルトの名無しさん
2005/04/23(土) 21:53:42LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
switch (msg) {
case WM_INITDIALOG: SetTimer(hWnd, ID_MYTIME, 1000, NULL);
return TRUE;(略
のようなプログラムを作っていてたら、
ダイアログプロシージャの戻り値ってBOOLじゃなかったっけ?
っていうような指摘を受けました。確かに戻り値は TRUE か FALSE ですけど、
どっちが正しいのですか?
0189デフォルトの名無しさん
2005/04/23(土) 22:28:52頭で覚えるとバグの元です。
0190デフォルトの名無しさん
2005/04/23(土) 22:41:07Win2kに.Net Freamworkをインストールするか、あるいはVC側でマネージ拡張を使わないようにすればいいんじゃないのか?
0191デフォルトの名無しさん
2005/04/23(土) 22:48:10昔 BOOL
今 INT_PTR
0192デフォルトの名無しさん
2005/04/23(土) 22:56:45ついでを言えば実際の値はBOOLでもLRESULTでも大差ない
BOOLはintのtypedefだしLRESULTはlongのtypedef
どちらも現時点で主流のWindowでは同じサイズ
0193デフォルトの名無しさん
2005/04/23(土) 23:02:53WINDEF.h というのを見つけてんで、さっそく確認して見ますた。
そうだったんですね、BOOL っていうからてっきり1ビットかと思っていました。
大変勉強になりました。ありがとうございます。
0194デフォルトの名無しさん
2005/04/23(土) 23:04:55そもそも1bitのデータ型なんか存在しないわけだが
0195デフォルトの名無しさん
2005/04/24(日) 01:41:39bool bool bool bool bool bool bool
0196デフォルトの名無しさん
2005/04/24(日) 01:56:08バーカ。
bool は Visual C++ 4.2 では 4 バイト、Visual C++ 5.0 以降では 1 バイト。
In Visual C++4.2, the Standard C++ header files contained a typedef that equated bool
with int. In Visual C++ 5.0 and later, bool is implemented as a built-in type with a
size of 1 byte. That means that for Visual C++ 4.2, a call of sizeof(bool) yields 4,
while in Visual C++ 5.0 and later, the same call yields 1.
0197デフォルトの名無しさん
2005/04/24(日) 05:12:37で、多くのものが実際には32ビット幅なんだけど、
だからといって型を気にしなくていい、というわけじゃない。
0198デフォルトの名無しさん
2005/04/24(日) 05:15:12vs.net2003でF1キーを押した時にヘルプが英語で表示されてしまいます。
日本語を優先的に表示させたいのですが、どこで設定すればいいのでしょうか・・?
フィルタ・言語設定等を日本語に設定してみても、
F1キーでは英語ヘルプが表示されてしまいます。
検索すれば日本語ヘルプは出てくるんだけど・・はぁ。。
0199デフォルトの名無しさん
2005/04/24(日) 09:51:42( ´,_ゝ`)プッ
0200デフォルトの名無しさん
2005/04/24(日) 10:03:00自惚れている馬鹿はどこにでもいる
0201デフォルトの名無しさん
2005/04/24(日) 11:23:510202デフォルトの名無しさん
2005/04/24(日) 11:57:04今日になってエラーが出てしまうのは何が原因なのでしょうか?
w2kでも最初に実行した時はうまく動きましたが、
次からエラーになってしまいます。
>>190さんのおっしゃる通り、このパソコンには
.net freamworkが入ってますし、マネージ拡張を「はい」
にしないとビルドの段階でエラーになってしまいます。
お小遣いを出して解説書を買ったのですがのってないみたいです。
0203デフォルトの名無しさん
2005/04/24(日) 12:42:43実装は1バイトや4バイトでも
言語仕様としては1ビットなわけだが。
intが32ビットというのと同じくらい痛い発言。
0204デフォルトの名無しさん
2005/04/24(日) 13:28:040205デフォルトの名無しさん
2005/04/24(日) 13:31:420206デフォルトの名無しさん
2005/04/24(日) 14:40:41.NET IDE の
オプション -> 環境 -> 国際対応
Document Explorer の
オプション -> 国際対応
0207デフォルトの名無しさん
2005/04/24(日) 16:07:52visual studio.net使ってアプリケーション作れって課題出されたんです。
テンプレートでよく使われているのはMFCかwin32かのどちらかみたいなんですけど、
両者がどのように違うのかが良く分かりません。
出来れば、特徴とか記述方法の違いとか分かりやすく教えていただけると
うれしいです。
0208デフォルトの名無しさん
2005/04/24(日) 16:17:500209デフォルトの名無しさん
2005/04/24(日) 16:36:040210デフォルトの名無しさん
2005/04/24(日) 16:44:18MFC=クラスライブラリ。Windowsの機能にクラスを通じてアクセス可能
C++の知識が必要
でも>>208
0211デフォルトの名無しさん
2005/04/24(日) 16:56:15Win32
Win32APIやC/C++標準ライブラリなどを直接使ってWin32アプリを作る
C/C++どちらでも作れる
作ったアプリはWindowsが入っていて、使用APIとOSバージョンが合致してれば使える
MFC
Win32APIやライブラリを分野ごとにクラスにまとめで使いやすくした(MS談)
Microsoft Fundation Classというクラス群を使ってWin32アプリを作る
クラスなので当然C++じゃないとダメ
作ったアプリはMFCのDLLをインストールしてあるPCでないと動かない
Windowsインストールしただけじゃだめ
0212デフォルトの名無しさん
2005/04/24(日) 16:58:57>なんか簡単すぎる説明だな
説明する方も良く分かってないみたいだからね
0213デフォルトの名無しさん
2005/04/24(日) 17:00:35Win32APIでシコシコ作った方が勉強になる
0214デフォルトの名無しさん
2005/04/24(日) 17:10:11まぁバージョンの問題があるだろうけど
0215デフォルトの名無しさん
2005/04/24(日) 17:15:16作ったアプリはMFCのDLLをインストールしてあるPCでないと動かない
Windowsインストールしただけじゃだめ
0216デフォルトの名無しさん
2005/04/24(日) 17:17:26御意。
例えば、Win2K以前にはMFC7.1以降のDLLはない。
>>207
どんなアプリケーションを作りたいのかを示さないと、斯くの如く混乱を招く。
作る課題はどんなものなのかね。
0217デフォルトの名無しさん
2005/04/24(日) 17:18:310218デフォルトの名無しさん
2005/04/24(日) 17:18:54誰があんなでかいもんスタティックリンクすんだよw
0219198
2005/04/24(日) 17:58:44答えてくれてありがと。
だた・・まだ変更されないです。。
とりあえず、↓の目に付いた設定は日本語にしています。
ツール -> オプション -> 国際対応の設定 -> 言語 = 日本語
ツール -> オプション -> ヘルプ -> 言語の選択 = 日本語
Document Explorerの
オプション -> 国際対応の設定 -> 言語 = 日本語
"ShowWindow" 、"RegisterClassEx"など日本語訳があるのに
F1押してみると、何故か英語が表示されてしまうです・・
0220デフォルトの名無しさん
2005/04/24(日) 18:50:05>言語仕様としては1ビットなわけだが。
言語仕様のどこに1ビットって書いてあるか教えてくれ。
0221デフォルトの名無しさん
2005/04/24(日) 18:53:300222デフォルトの名無しさん
2005/04/24(日) 19:27:01マニュアル読め
じゃいかんのかね 最近は・・・
たいてい書いてあるんだがね
0223デフォルトの名無しさん
2005/04/24(日) 19:32:040224207
2005/04/24(日) 19:55:37エクセルファイルを開かないでデータのみを読み込んで、設定を入力
すると、計算して値の内容が合ってるかチェックできるような
アプリケーションなんですけど・・。
>>222
マニュアルは手元に無いので(回してインストールしたので)、
参照したいんですが出来ないのです。
>>223
どこかおすすめのサイトってありませんか?
0225デフォルトの名無しさん
2005/04/24(日) 20:04:540226デフォルトの名無しさん
2005/04/24(日) 20:51:19> 参照したいんですが出来ないのです。
著作権法違反発見!!!!!
0227デフォルトの名無しさん
2005/04/24(日) 21:11:060228デフォルトの名無しさん
2005/04/24(日) 21:13:190229デフォルトの名無しさん
2005/04/24(日) 21:16:350230デフォルトの名無しさん
2005/04/24(日) 21:17:210231デフォルトの名無しさん
2005/04/24(日) 21:20:20犯罪という意識がないんだろうな
0232デフォルトの名無しさん
2005/04/24(日) 21:28:16最近のPCはHDDの容量が多いので、スタティックリンクしたときの
メリットの方が多いですね。
0233デフォルトの名無しさん
2005/04/24(日) 21:34:48HDDの容量なんてどうでもいい罠
0234デフォルトの名無しさん
2005/04/24(日) 22:00:500235デフォルトの名無しさん
2005/04/24(日) 22:35:230236デフォルトの名無しさん
2005/04/24(日) 23:15:010237デフォルトの名無しさん
2005/04/24(日) 23:17:20「エクセルファイルを開く」とはxlsファイルをダブルクリックする事だと推測
つまりプログラムから読み込むのは「エクセルファイルを開く」にあたらない
0238デフォルトの名無しさん
2005/04/24(日) 23:18:48じゃ、なんでダイナミックリンクするの?
0239デフォルトの名無しさん
2005/04/24(日) 23:52:02saddr.sin_addr = *((LPIN_ADDR)*lpHost->h_addr_list);
の一文の右の式の意味ってどういうこと?
lpHostこうぞうたいのh_addr_listの値をロングポインタ型のINADDRにキャストした
やつのポインタの中身を左辺に代入するってこと?
そもそもwsprintfのwとかLPIN_ADDRのLPとかなんのことなんでしょうか?
0240デフォルトの名無しさん
2005/04/25(月) 00:10:58l : long
p : pointer
0241デフォルトの名無しさん
2005/04/25(月) 00:11:470242デフォルトの名無しさん
2005/04/25(月) 00:15:470243デフォルトの名無しさん
2005/04/25(月) 00:15:49したやつの中身(つまりアドレス?)がはいるということでしょうか。
0244デフォルトの名無しさん
2005/04/25(月) 00:34:48HOSTENT構造体のポインタlpHostのメンバのh_addr_listをLPIN_ADDRにキャストして参照してる。
h_addr_list自体はポインタのポインタ。要はネットワークアドレスの配列。
LPは普通のポインタだと思っとけばいいと思う。
0245デフォルトの名無しさん
2005/04/25(月) 00:44:220246デフォルトの名無しさん
2005/04/25(月) 06:30:30無い頭で考えろ
0247デフォルトの名無しさん
2005/04/25(月) 06:53:29ありが�d
0248デフォルトの名無しさん
2005/04/25(月) 10:08:25実行させた場合それだけで複数のcpuに処理を分散させることになるのですか?
0249デフォルトの名無しさん
2005/04/25(月) 10:54:49結局、説明出来ないのですね
0250デフォルトの名無しさん
2005/04/25(月) 11:02:47むしろスレッドをどのcpuで実行させるかは指定できない。
OSが管理するので。
0251デフォルトの名無しさん
2005/04/25(月) 14:17:391画素1画素処理していく以外に何か方法とかありますか?
0252デフォルトの名無しさん
2005/04/25(月) 14:18:25LineTo
0253デフォルトの名無しさん
2005/04/25(月) 16:49:59自分がわからんからって人のせいにするなよ
0254デフォルトの名無しさん
2005/04/25(月) 17:04:37pgm形式の画像ファイルを読み込むので、一番簡単な方法ってなんでしょうか?
0255デフォルトの名無しさん
2005/04/25(月) 17:12:110256デフォルトの名無しさん
2005/04/25(月) 17:15:41マニュアル等では、各スレッドの処理がタイムスライスに従って
移行しているようですが、一時的にプリエンプションを禁止して、
その後解除するような事はできるのでしょうか?
0257デフォルトの名無しさん
2005/04/25(月) 17:18:230258デフォルトの名無しさん
2005/04/25(月) 17:28:41Unix系のライブラリを使うのがいちばん簡単。
まぁ、自分で書いても大したことないけどね。
詳しくはVCスレではないC/C++初心者スレか画像スレにでも。
>>255
鸚鵡返しに質問しないで少しは自分で調べたら?
0259デフォルトの名無しさん
2005/04/25(月) 18:00:00pgmだけ読み込むなら自前で処理したほうがいいね。
ライブラリを使うという手もあるけど、
ライブラリの使い方を調べてる時間があったら充分自分で実装できる。
もし使うならSusie Plug-inあたりがお勧めだね。
単純な形式だから、UNIX系のライブラリがお勧めできないのはわかるよね?
>>255
はるか昔の画像形式。
おじさんが若い頃はpgm使ってたんだよ。
リソースの代わりにソースに画像を埋め込んだりするときに使える。
その代わりものすごく効率悪い。
今ネイティブ形式として使ってたら池沼だね。
0260デフォルトの名無しさん
2005/04/25(月) 18:08:460261デフォルトの名無しさん
2005/04/25(月) 18:22:06あなたにとっての普通のタイマーとは?
0262デフォルトの名無しさん
2005/04/25(月) 18:27:240263デフォルトの名無しさん
2005/04/25(月) 18:33:05もしや、xpmと勘違いしていませんか?
つーか、pgmをソースに埋め込んだら只の阿呆ですな。
今でも2次元のべたデータにpgmのヘッダだけ付け足してxvで表示するエンジニアは目の前にごろごろしているんだけど、
unixも使えないロートルには荷が重い話かな?
0264デフォルトの名無しさん
2005/04/25(月) 18:39:450265デフォルトの名無しさん
2005/04/25(月) 18:55:22ありがざいました
0266デフォルトの名無しさん
2005/04/25(月) 20:40:49つSetThreadAffinityMask
>256
スレッドのプライオリティを最大まで上げれば、他に対抗するスレッドが
現れない限り、似たような効果は得られるとおもう。CPUが複数あるなら
意味なしだけど。
0268デフォルトの名無しさん
2005/04/25(月) 21:18:17再インストール
ここってパソコン初心者板だっけ?
0269デフォルトの名無しさん
2005/04/26(火) 00:42:50ここは初心者スレだぞ。
勿体ぶらずに説明しろよ。
0270デフォルトの名無しさん
2005/04/26(火) 02:04:14いきなりMFCから入っても大丈夫でしょうか?
MFCの方がWin32 APIだけよりも本格的っぽいので、いきなりこちらからやろうと思っているのです。
0271デフォルトの名無しさん
2005/04/26(火) 02:42:370272デフォルトの名無しさん
2005/04/26(火) 03:15:32インクルードファイルやリンクライブラリは何を指定すればいいのでしょうか?
その他注意点があったら教えて草代。
0273デフォルトの名無しさん
2005/04/26(火) 05:30:370274デフォルトの名無しさん
2005/04/26(火) 10:39:47それだけあってもダメかもしれんな
0275デフォルトの名無しさん
2005/04/26(火) 11:56:150276デフォルトの名無しさん
2005/04/26(火) 12:14:29hello.cppのソースに
#include <ATLComTime.h>
を書き加えるとリンクエラーになるのですがどうしたらいいですか?
heloo.cppのソースは
// これは メイン DLL ファイルです。
#include "stdafx.h"
#include "hello.h"
#include <ATLComTime.h>
だけです。
初心者ですいませんがどなたか教えていただけないでしょうか?
0277デフォルトの名無しさん
2005/04/26(火) 12:41:53ATLは初心者向けじゃないと思うから
それ以上はコメントしません。
0278デフォルトの名無しさん
2005/04/26(火) 12:53:15サンプルソースがWindowアプリだったので内部処理の部分をDLL化してみたかったんです。
どうもありがとうございます。
0279デフォルトの名無しさん
2005/04/26(火) 13:49:57僕も君と同じような道を歩んだよ。C++を勉強して、MFCに入っていった。
Windowsプログラミングを習得するための入り口としては適してるかもしれない。
(というよりこれぐらいしかない?ATLはさすがに初心者は難しいだろうし)
ただ、int main(){}で始まるプログラミングしか知らない人は戸惑うと思う。
なんせ根幹となるループ構造が隠蔽されてるからね。フレームワークという概念を習得しよう。
MFCをある程度理解しWindowsMESSAGEとかも理解できてきたら、WIndowsがどのように成り立っているかが
ほんのすこし垣間見えるかも。
最終的には、MFCのダメさ加減を認識し始めたら一人前だ。
0280デフォルトの名無しさん
2005/04/26(火) 13:58:53static linkの場合は必要なものだけ選別してリンクするから
あの馬鹿でかいDLLの容量だけ増えるわけじゃないよ。
とはいえ、MFCはどういうわけかちょこっとstatic linkするだけでも、意外に容量的コストが
発生するという話だ。
0281デフォルトの名無しさん
2005/04/26(火) 17:09:42そこで、文字の色や文字数やデータ構造などを自由に決めるために、
CEditViewを使わずCViewで作ろうと思ってるのですが、
CViewにて日本語入力を受け付ける方法がわかりません。
今ひとつメッセージに関してわかっていない自分ですが、
どのように入力を受け付ければいいのか、
どなたか教えていただけませんでしょうか。
よろしくお願いいたします。
0282デフォルトの名無しさん
2005/04/26(火) 17:13:22ttp://home.h07.itscom.net/buruturi/VCTIPS_008.html
ちなみに(3)-(F)の直後でreturn 0;すれば(4)を書く必要はなくなる。
0283デフォルトの名無しさん
2005/04/26(火) 17:48:39完全自作じゃないじゃん
0284281
2005/04/26(火) 17:53:18ありがとうございます。
ただ、早速試してみたのですが、どうもうまく行きません。
自分がメッセージ処理に疎いからだと思うのですが…。
-- CMyView.hの中身の一部 --
class CMyView : public CWnd {
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
public:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnDestroy();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
/* (イ)ここに何を書けばいいのか */
}
(続く)
0285続き
2005/04/26(火) 17:53:43BEGIN_MESSAGE_MAP(CSuperLView, CWnd)
ON_WM_PAINT()
ON_WM_CREATE()
ON_WM_DESTROY()
ON_WM_SIZE()
ON_WM_ERASEBKGND()
ON_WM_KEYDOWN()
/* (ロ)ここに何を書けばいいのか */
END_MESSAGE_MAP()
以上、(イ)と(ロ)の位置に何を書けばいいのかわかりません。それぞれに
(イ)afx_msg LRESULT OnIMEStartComposition(WPARAM wParam, LPARAM lParam);
(ロ)ON_WM_IME_STARTCOMPOSITION
を書いても「ON_WM_IME_STARTCOMPOSITIONが定義されてない」みたいな
エラーが出てきます。他に何をすればいいのでしょうか?
よろしくお願いします。
0286281
2005/04/26(火) 17:56:20そうですね。すいません。
自分が使いやすいエディタを作りたいだけです^^
0287281
2005/04/26(火) 18:00:372行目、CSuperLViewではなくCMyViewです。すいません。
実際はCSuperLViewという名前にしてるだけです。
0288デフォルトの名無しさん
2005/04/26(火) 18:02:300289デフォルトの名無しさん
2005/04/26(火) 19:52:29afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
BEGIN_MESSAGE_MAP(CMyWnd, CMyParentWndClass)
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)
END_MESSAGE_MAP()
これを真似すればできる
0290281
2005/04/26(火) 21:44:35できました! 感激です!
どうもありがとうございました!
頑張って免許取りたてでレース出てみます!
0291デフォルトの名無しさん
2005/04/26(火) 23:01:14メモリが無駄になる。
DLLが同じアドレスにロードされれば、同じ物理メモリを共有するが、
スタティックリンクしてしまうと、そういうことができない。
>>248
スレッドにうまく処理を分けるのはプログラマの仕事。
どのスレッドをどのCPUでいつ走らせるかはOSの仕事。
>>250
嘘いうなよ。
Win32 APIのSetThreadAffinityMaskで指定できる。
>>256
普通のユーザモードで走るプロセスは、
プリエンプションを禁止して走ることはできない。
いついかなるタイミングでプリエンプションが発生しても良いようにコーディングしてね。
0292デフォルトの名無しさん
2005/04/26(火) 23:57:07最近のPCはメモリの容量が多いので、スタティックリンクしたときの
メリットの方が多いですね。
0293デフォルトの名無しさん
2005/04/26(火) 23:58:440294デフォルトの名無しさん
2005/04/27(水) 00:12:550295デフォルトの名無しさん
2005/04/27(水) 00:44:400296デフォルトの名無しさん
2005/04/27(水) 00:53:34配布されて居る件について。
・MicrosoftはSxsを推奨している件について。
0297デフォルトの名無しさん
2005/04/27(水) 03:18:45>プリエンプションを禁止して走ることはできない。
>いついかなるタイミングでプリエンプションが発生しても良いようにコーディングしてね。
これってasmで割り込み禁止にしても?
0298デフォルトの名無しさん
2005/04/27(水) 03:24:420299デフォルトの名無しさん
2005/04/27(水) 04:37:32ちょっとはマルチタスクOSについて勉強してよ。
そういうプログラマが書いたプログラムって悲惨なんだよね。
空ループして何かを待ったりして、メッセージポンプ止めてるのに、
イベント来ないとか文句言ったりさ。
>>296
MFCのDLLの話とは関係ないじゃん。
自作DLLをたくさんのプロセスで共有することってあるかな。
MSVCRTとかMFCとかならともかくさ。
するとしても、そいつらはみな同じ0x10000000にロードされるだろうから、共有できるでしょ。
0300デフォルトの名無しさん
2005/04/27(水) 04:39:12そういう自作DLLを多数使うアプリってあるのかな。
もしDLLとEXEを同じところで作っていれば、
デバッグ時にVC++が、
バッティングしたからズラしたぞゴルァ
って言ってくるから、気がつくでしょ。
0301デフォルトの名無しさん
2005/04/27(水) 08:46:030302デフォルトの名無しさん
2005/04/27(水) 08:50:59#define ___XXXXX
#endif
の代わりに
#if _MSC_VER > 1000
#pragma once
#endif
を使う利点、欠点を教えてください
0303デフォルトの名無しさん
2005/04/27(水) 09:01:38普通の人にとってはどうでもいい問題にしか思えんな
0304デフォルトの名無しさん
2005/04/27(水) 09:10:30既出。
・利点
ソースを全部評価しないで済む。
・欠点
(当然だが)他のコンパイラでは使えない。
0305デフォルトの名無しさん
2005/04/27(水) 12:31:25主要なコンパイラはサポートしてるらしいよ。
0306デフォルトの名無しさん
2005/04/27(水) 13:41:20主要なコンパイラでは_MSC_VERが定義されているの?
それは不便だ……
0307デフォルトの名無しさん
2005/04/27(水) 14:52:42XP風のビジュアルスタイルにしたくて調べているのですが
「ButtonコントロールのFlatStyleプロパティをSystemに設定して・・・」
とあります。
ところが、プロパティ設定の画面には"Flat"はあるのですが"FlasStyle"はありません。
何か根本的に間違っているのでしょうか?
よろしくお願いします。
0308デフォルトの名無しさん
2005/04/27(水) 14:55:300309デフォルトの名無しさん
2005/04/27(水) 15:18:01綴りが違う
0310デフォルトの名無しさん
2005/04/27(水) 16:04:10ボタンをフラットにしたいんだろうか?
たまたま見つけたサイトに書いてあることが真実か知りたいんだろうか?
まずそこをはっきりしろ
0311デフォルトの名無しさん
2005/04/27(水) 16:14:25MFC で作ったアプリで、アイコンの設定で躓いています。
サイズ 32×32、24 bit の bmp の拡張子を ico に変えたものを用意し、
リソース IDB_ICON32 として取り込みました。
C○○App クラスの InitInstance において、
HICON icon = LoadIcon( IDB_ICON32 ); // A
m_pMainWnd->SetIcon(icon, true); // B
として実行すると、起動中に B の行でアプリが強制終了されました。
24bit の bmp をリソースとして取り込むことはできないのでしょうか?
またその場合、リソースではなく外部からアイコンを取り込むにはどうすればいいのでしょうか?
よろしくお願いします。
0312307
2005/04/27(水) 16:21:58プロジェクトはダイアログベースで作成しています。
0313デフォルトの名無しさん
2005/04/27(水) 16:23:32ビットマップをLoadIconしてどうすんだよ・・・
そのビットマップデータをペイントか他の適当なペイントツールで開いて全体をCtrl+Cでコピーして、
VCの新規リソースでICON作ってそこにペーストしる
0314デフォルトの名無しさん
2005/04/27(水) 17:33:258bit のビットマップをペイントで開いてコピー、
リソース作ってペーストして ico ファイルを作ったのですが、
どうしても再度読み込むと、パレット情報がばらばらになってしまいます。
(色がめちゃくちゃになる)
24->8 bit への減色は、ペイントで行なっています。
原因の見当がつきません。よろしくお願いします。
0315311=314
2005/04/27(水) 17:33:590316デフォルトの名無しさん
2005/04/27(水) 17:47:53・ペイントの原色の性能はまったくのポンコツ。
JPEGとかをGIFで保存してみたら一目瞭然。
0317311=314
2005/04/27(水) 18:04:36Photoshop で減色する際、使用中の入りを全て割り当てる、
Windows(システム)などが色々な種類がありますので、
アイコンなどに使われるパレットはもしかして固定なのかと思い、
もしそうなら Windows 付属のペイントならシステムにあった減色を
してくれるのでは?と思い、あえてこの方法をとりました。
間違った判断だったようですが……。
>>313 でお教えいただいた方法で IDI_*** として取り込むことはできました。
ところが、生成された ico ファイルは、パレットがむちゃくちゃでした。
むむー
0318デフォルトの名無しさん
2005/04/27(水) 18:08:19元々8bitで書いてないうえに、ペイントで原色してるんじゃそれはしょうがない
もっとちゃんとしたエディター使うべき
0319311=314
2005/04/27(水) 18:09:10なるほど、アイコン作成用のフリーソフトを探してみます。
ありがとうございました。
0320デフォルトの名無しさん
2005/04/27(水) 18:21:33原色→減色
0321デフォルトの名無しさん
2005/04/27(水) 19:17:590322デフォルトの名無しさん
2005/04/27(水) 19:31:19けっこう大切な話なんだけどな。
初心者にありがちなのが、
肝心なことをスルーしてしまうこと。
トレースに何か出ていても無視したりするんだよね。
0323デフォルトの名無しさん
2005/04/27(水) 19:32:16FindNextFile
FindClose
0324デフォルトの名無しさん
2005/04/27(水) 20:00:12int main(int argc,char** argv)の引数を入力して
デバッグはどうやってやるんですか
0325デフォルトの名無しさん
2005/04/27(水) 20:53:020326デフォルトの名無しさん
2005/04/27(水) 21:53:05VCでデバッグすればいいじゃない
0327デフォルトの名無しさん
2005/04/28(木) 16:45:17表示するには、ウォッチでどう入力すればよいのでせうか??
0328デフォルトの名無しさん
2005/04/28(木) 16:58:57ポインタ[1]
...
0329327
2005/04/28(木) 17:53:06カウンタ変数みたいにできない?
0330デフォルトの名無しさん
2005/04/28(木) 18:00:16MFC を利用してプログラムを行なってます。
ALT キーの入力の監視方法でつまづいています。
>error C2065: 'VK_ALT' : 定義されていない識別子です。
ALT キーの入力を見たいのですが、VK_ALT が定義されていないと言われました。
VK_RETURN や VK_ESC などは定義されています。
VK_A、VK_B、…も同様にエラーが出ますが、'A'、'B'、…で代用しています。
ご助言をお願いします。
0331デフォルトの名無しさん
2005/04/28(木) 18:03:56VK_MENU (12)
ALT key
0332330
2005/04/28(木) 18:16:23申し訳ございません、そのアドレスの意味が分かりませんでした……。
ヘルプは持っています。(MSDN ライブラリ MicrosoftR Visual StudioTM6.0 リリース)
0333デフォルトの名無しさん
2005/04/28(木) 18:16:25.NET2002持ってますが、将来的にはそっちに乗り換えたほうがいいでしょうか。
かなり使い勝手が違うようにも思えますが、
何か決定的に違うところってありますか?
0334デフォルトの名無しさん
2005/04/28(木) 18:29:14アドレスの下に書いてある2行がお前は読めんのか
0335デフォルトの名無しさん
2005/04/28(木) 18:32:04プロジェクトを新規作成するとき、
プロジェクト名と同じ名前のフォルダしか作れない。
例えば、プロジェクト名を毎回同じ(Hogeとか)にして、
フォルダ名に日付を入れる(Hoge20050428)ような使い方がしにくい。
0336デフォルトの名無しさん
2005/04/28(木) 19:11:31演算でパイを使いたいのですが、
どうやって指定するんですか?
paiとかでいいんでしたっけ?
くだらない質問かもしれませんが、緊急なのでお願いします。
0337デフォルトの名無しさん
2005/04/28(木) 19:13:040338デフォルトの名無しさん
2005/04/28(木) 19:13:05スレ違い
0339デフォルトの名無しさん
2005/04/28(木) 19:16:01まあ自己解決しました。
どうもです。
0340デフォルトの名無しさん
2005/04/28(木) 19:26:54#include <math.h>
M_PI
0341デフォルトの名無しさん
2005/04/28(木) 19:29:320342デフォルトの名無しさん
2005/04/28(木) 19:39:100343デフォルトの名無しさん
2005/04/28(木) 19:42:17C言語の勉強をしたいのですが、visual C++以外に良いソフトはないのでしょうか?
また、現在その6.0が最新のようですが4.0がとても安かったので買おうか悩んでいます。
6.0に比べて機能に致命的な点はあるのでしょうか?OSはXP SP2です。
0344デフォルトの名無しさん
2005/04/28(木) 19:48:160345343
2005/04/28(木) 19:57:41一応大学の情報工学部に入ったので、
将来的には割と難しいことができるようになりたいという前提です。
でも6.0を買うまでの金銭的余裕がないもので…よろしくお願いします。
0346デフォルトの名無しさん
2005/04/28(木) 20:00:280347デフォルトの名無しさん
2005/04/28(木) 20:02:47http://pc8.2ch.net/test/read.cgi/tech/1103381010/
。
学生認証が必要だけど、5000円以下で買えるtheSpokeがいいと思う。
0348デフォルトの名無しさん
2005/04/28(木) 20:03:50アホか
0349デフォルトの名無しさん
2005/04/28(木) 20:42:06表示のために構造体でも定義してキャストしたらどうだろう。
>>343
情報工学の学生さんなら、とりあえずLinux入れてgccでいんじゃない?
0350327,329
2005/04/28(木) 20:48:030351デフォルトの名無しさん
2005/04/28(木) 20:52:190352デフォルトの名無しさん
2005/04/28(木) 20:53:18>>349が答えてくれてるじゃないか
ていうかアドレス指定してメモリヲッチしろよ
0353デフォルトの名無しさん
2005/04/28(木) 20:56:54スタンダード版で開発したアプリケーションはシェアウェア公開する事が可能ですか?
当方、学生ではないので、どちらを買おうか迷っています。(pro版はあまりにも高いためスタンダードで妥協しようかと)
0354デフォルトの名無しさん
2005/04/28(木) 21:20:32高いやつは大規模なアプリの開発に向いてる。(複数人で開発するとか)
個人で小さいプログラム作るなら無料版でじゅうぶん
シェアウェア公開も可
0355デフォルトの名無しさん
2005/04/28(木) 21:33:33new演算子を使い終了時にリークしていた時、
_CrtSetDbgFlagで正しく行番号をアウトプットに吐かせるには
どうしたら良いでしょうか
マクロで対応させれたと思うのですが、忘れてしまいまして、、。
宜しくお願いします
(´・ω・`)
0356デフォルトの名無しさん
2005/04/28(木) 21:39:060357353
2005/04/28(木) 21:55:35無料版って事はVisual Studio 2005 Expressですか?
どうせなら製品版を使いたいんですが、スタンダードとプロフェッショナルとExpressの違いを教えてください。
0358デフォルトの名無しさん
2005/04/28(木) 21:56:52MSのサイト行け
0359デフォルトの名無しさん
2005/04/28(木) 22:00:18バラバラにかかれているプログラムをショートカットで直す
のってどうやります?
たしかコントロール+オールで全部指定して
なにかするとおもったのですが
0360デフォルトの名無しさん
2005/04/28(木) 22:05:500361デフォルトの名無しさん
2005/04/28(木) 22:10:12質問が分かりません。
0362355
2005/04/28(木) 22:11:07吊ってきます
(つД`)
0363デフォルトの名無しさん
2005/04/28(木) 22:35:03Cランタイムなら_malloc_dbg
MFCならDEBUG_NEW
あたりだと思うけど。
ただ、_DEBUGが定義されてると、mallocは_malloc_dbgになるらしいぞ。
0364デフォルトの名無しさん
2005/04/28(木) 22:57:51載ってません。
実際の使用感を教えてください。
0365デフォルトの名無しさん
2005/04/28(木) 23:01:26スタンダード版は最適化ができないようになっている。
0366デフォルトの名無しさん
2005/04/28(木) 23:12:07使えるようになったころには使えない製品になってる。
0367デフォルトの名無しさん
2005/04/28(木) 23:23:44漏れは途中でtheSpokeに釣られたけどな...orz
0368デフォルトの名無しさん
2005/04/29(金) 00:27:08デバッグするのには欲しいな。
0371デフォルトの名無しさん
2005/04/29(金) 01:21:25VBやツクールでつくられてるものが、ほとんどだけど
やはり、VC++でゲームをつくるには、時間と労力がかかりますか??
VC++でつくるのが王道って勝手に認識してるのですが。。
0372デフォルトの名無しさん
2005/04/29(金) 01:26:190373デフォルトの名無しさん
2005/04/29(金) 01:26:44どういう違いがあるんですか?
0374デフォルトの名無しさん
2005/04/29(金) 01:30:190375デフォルトの名無しさん
2005/04/29(金) 01:30:250376デフォルトの名無しさん
2005/04/29(金) 01:30:38難しそうですが、vc++でやってみようと思います。
ありがとうございました。
0377デフォルトの名無しさん
2005/04/29(金) 01:33:46きめ細かく組めるってことは知ってたんですが、、。
0378デフォルトの名無しさん
2005/04/29(金) 02:25:38変数名,要素数
で表示できるよ
0380デフォルトの名無しさん
2005/04/29(金) 05:03:08ハンドルなんですか?
createwndowの戻り値と同じもの???
0381デフォルトの名無しさん
2005/04/29(金) 11:13:44WinMainの引数をそのまま渡せばよい
CreateWindowの戻り値はウィンドウハンドルだろーガッ
0382デフォルトの名無しさん
2005/04/29(金) 12:20:480383デフォルトの名無しさん
2005/04/29(金) 15:40:16_WIN32_WINDOWS や _WIN32_WINNT に定義する値は、
「このバージョンからなら動くよ」という値を入れておけば良いのですか?
0384デフォルトの名無しさん
2005/04/29(金) 16:09:100385デフォルトの名無しさん
2005/04/29(金) 16:15:43例えばWindows2000以降にしかない関数を使うとき、
APIによっては_WIN32_WINDOWSの値を大きくしないとプロトタイプ宣言が見えないことがある。
VC++6は1998年ごろのやつだから、Platform SDKを入れないとWindows2000以降の機能は使いにくいが。
0386383
2005/04/29(金) 18:04:38Platform SDKというのも調べてみます。
0387デフォルトの名無しさん
2005/04/29(金) 18:07:470388デフォルトの名無しさん
2005/04/29(金) 20:00:55「このバージョン以降で動かすことを前提とする」という値。
マクロ定義が変わるだけで、呼べるAPIが変わる or コンパイル時にエラー出してくれるだけなので、
OSのバージョンによって実装されてないAPIを呼ぶようなプログラムでは、
それらのAPIを呼ぶ前に、自前でバージョンをチェックしてね。
いちおうEXEやDLLに、NT専用とかの設定はあるけど、
それでOSにハネさせるのは、一般のユーザには馴染みがないから、不親切です。
0389デフォルトの名無しさん
2005/04/29(金) 22:12:28> それらのAPIを呼ぶ前に、自前でバージョンをチェックしてね。
チェックする前に起動時にコケるわけだが
0390デフォルトの名無しさん
2005/04/29(金) 22:52:02DLLにシンボルさえないAPIもあれば、
ERROR_CALL_NOT_IMPLEMENTEDが帰るAPIもある
0391デフォルトの名無しさん
2005/04/29(金) 23:11:55VC#やVBやjavaよりもVC++のほうが動作が速いですか?
.net frameworkを交えたら一緒になっちゃったりするわけですか?
0392デフォルトの名無しさん
2005/04/29(金) 23:39:36まあC++のほうが遅くなることはまずないと思うけどね。
速度にどれだけの差が出るかは場合にもよるのでちゃんとやりたきゃしっかりテストしましょう。
0393デフォルトの名無しさん
2005/04/30(土) 00:11:29ただしオブジェクト変数さわったとたん遅くなるけど
0394デフォルトの名無しさん
2005/04/30(土) 00:22:38C#はCLR(共通言語ランタイム)で動くアプリを作れて、VC++はネイティブアプリを作れる、VBはしらんがな、6まではネイティブ作れた
[C#アプリ1]〜[C#アプリN]
|
[CLR] [VCアプリ]
[Windows]
CLR上のプロセスはWinからは1つのプロセス空間(CLR)にしかみえないのだろうか
ネイティブプロセスの仮想メモリ空間を効率的に使うとか本でちっと読んだが、実行時に中間言語コンパイル噛むとかで遅いらしい
0395デフォルトの名無しさん
2005/04/30(土) 02:32:41そういうAPIはインポートライブラリを使わずに、
LoadLibraryやGetProcAddressとか使いましょうよ。
>>391
ものによるなぁ。
C++は速いと信じきっていたけど、Javaを使って考え変わったよ。
C++は自由度が高すぎてコンパイラが大胆に最適化できないし、
けっこう無駄なコードを書いたりするから。
0396デフォルトの名無しさん
2005/04/30(土) 04:38:50そりゃ、書く人のスキル
0397デフォルトの名無しさん
2005/04/30(土) 04:40:03ソースレベルで最適化。
0398デフォルトの名無しさん
2005/04/30(土) 08:45:36OS を再インストールしたので PSDK を Update しようとしたら This page has moved. になっちゃってました。
いまだに VC++ 6.0 で Windows 98 向けアプリを作ってるんですが 2003 年頃の PSDK は何処で手に入れればいいのですか?
0399デフォルトの名無しさん
2005/04/30(土) 08:50:19JavaのJITとかはプロフィールベースの最適化だから、Javaの方が
速くなりうる、と言う話もあるよね。
0400デフォルトの名無しさん
2005/04/30(土) 10:06:47馬鹿ですか?
自動車とオリンピック選手がマラソンで競争したら
オリンピック選手の方が速いとかいいそうだな
0401デフォルトの名無しさん
2005/04/30(土) 10:12:090402デフォルトの名無しさん
2005/04/30(土) 10:38:59もう少し勉強してから書き込んでくれ。
0403デフォルトの名無しさん
2005/04/30(土) 10:48:02最新バージョンのVB, VC, CB,Delphi, JavaおよびC#で作成された
同一アルゴリズムの簡単な数値計算プログラムの実行速度を比較してみた。
実行速度はおおよそ
VisualC++≒C# > Delphi ≒ C++Builder>VisualBasic≒Javaの順で,
以前の試験と比較すると,VBの速度が若干向上し,
初登場のC#がVC並みの速度を有することがわかった。
JavaはVCの1/4〜1倍程度の速度を有しており,
数値計算に不向きと言えるほどの低速ではなかった。
0405デフォルトの名無しさん
2005/04/30(土) 17:52:55質問があるのですが
Dialogをリソースエディタで
http://www.geocities.jp/devil_man_kekeke/pict1.JPG
に作ったんですが、
実際にアプリを実行させて、モーダルでShowさせたら
http://www.geocities.jp/devil_man_kekeke/pict2.JPG
な感じになり、
余計なボタンが2つとスタティックテキストが表示されてしまいます。(OK、Cancel、TO DO)
これはどうしてこうなるのでしょうか?
初歩的な質問になりますが、よろしくお願い致します。
0406405
2005/04/30(土) 17:54:20void CMainFrame::OnTestEx6()
{
// TODO : ここにコマンド ハンドラ コードを追加します。
CEx06Dialog ex06dlg;
ex06dlg.DoModal();
}
としています。
.NET2003です。
0407デフォルトの名無しさん
2005/04/30(土) 18:37:29一度VisualStudioを終了して、再度ソリューションを開いたらリビルドして味噌。
それでもダメならリソースハンドリングかどこかで何かミスをしている。
0408デフォルトの名無しさん
2005/04/30(土) 18:49:330409405
2005/04/30(土) 19:19:12なるほど
HTMLダイアログというものもあるんですね
IDH = IDR_HTML_EX06DIALOG
CDHtmlDialog(CEx06Dialog::IDD, CEx06Dialog::IDH, pParent)
これを無効にしたいんですが、どのようにすればいいのでしょうか。
通常のDialogだけ表示できればいいです。
0410405
2005/04/30(土) 19:21:48ご返答助かります。
HTMLダイアログの問題みたいです。
とりあえず、htmlの内容を全て消去して解決しました。
知識不足ですいません。
現在、VisualBasic6.0の分厚い本を参照して勉強しているので、HTMLダイアログの存在がわかりませんでした。
0412デフォルトの名無しさん
2005/05/01(日) 00:49:350413デフォルトの名無しさん
2005/05/01(日) 01:03:11浮動小数点の場合はどうしてますか?
0414デフォルトの名無しさん
2005/05/01(日) 01:04:17プロジェクトを作らずにコマンドラインでコンパイルすることは
できないでしょうか?
0415デフォルトの名無しさん
2005/05/01(日) 01:21:18Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat
0416デフォルトの名無しさん
2005/05/01(日) 05:46:000417デフォルトの名無しさん
2005/05/01(日) 06:28:060418デフォルトの名無しさん
2005/05/01(日) 13:33:25そら心の狭いてぃんかすやろうだけ
0419デフォルトの名無しさん
2005/05/01(日) 13:41:39>>412
こういうやつ一番嫌い。
まず使い物にならん
0420デフォルトの名無しさん
2005/05/01(日) 13:45:03>>>167
>昔散々やったことなので、時間が勿体無くて。。
>他の人に聞くと一瞬で解決することが時々あるので質問させてもらいました。
嫌なもの見ちまった
0421414
2005/05/01(日) 14:31:34すいません、vs32vars.batでどうすればいいんでしょうか?
やりたいことは
c:\>cc hello.c
のような方法でコンパイルをしたいのですが。
0422デフォルトの名無しさん
2005/05/01(日) 14:35:51コマンドプロンプトで
>vs32vars.bat
を実行すれば
>cl hello.c
でコンパイル出来るようになる。
0423デフォルトの名無しさん
2005/05/01(日) 14:48:48>昔プログラマをしていた者です。
>>412
こういうやつ一番嫌い。
まず使い物にならん
こいつも使い物にならんな
0424デフォルトの名無しさん
2005/05/01(日) 14:52:01偏見のようだがこのスレ見てると遠からずだな
0425デフォルトの名無しさん
2005/05/01(日) 14:58:41政界
0426デフォルトの名無しさん
2005/05/01(日) 15:02:010427デフォルトの名無しさん
2005/05/01(日) 15:03:50だから鎮火すは一部の奴だっつーの。
0428デフォルトの名無しさん
2005/05/01(日) 15:10:25>昔散々やったことなので
入試に失敗した時のいいわけに使えそう。
0429デフォルトの名無しさん
2005/05/01(日) 15:33:13厨房ですか?
0430デフォルトの名無しさん
2005/05/01(日) 15:35:550431デフォルトの名無しさん
2005/05/01(日) 16:00:58VS2003のVC++使ってるんですけど、Win32しかプラットフォームをIDE上からは選べませんよね?
で、インクルード関連の設定をWin32/Win64で切り替えるときにいちいち手動で書き変えるのはあまり現実的ではないとおもうんで
自分でプラットフォームの設定項目を加えたいんですが・・・
どうすれば出来ますか?
Release64は自分で追加出来るのに・・・・・
0432デフォルトの名無しさん
2005/05/01(日) 16:05:39Win32のウィザードを参考にしながら、Win64のウィザードを作ったらいい。
0433デフォルトの名無しさん
2005/05/01(日) 17:27:500434デフォルトの名無しさん
2005/05/02(月) 09:08:34>LIBCMTD.lib(dbgheap.obj) : error LNK2005: _malloc はすでに libcmt.lib(malloc.obj) で定義されています
みたいなエラーがでます。
回避策教えて下さいでつ。
0435デフォルトの名無しさん
2005/05/02(月) 09:20:09libcmt.lib(malloc.obj) リリース用
どっちか1つに
0436デフォルトの名無しさん
2005/05/02(月) 11:35:18静的リンクするライブラリも、必要ならデバッグビルド用とリリースビルド用を用意汁。
0437デフォルトの名無しさん
2005/05/02(月) 12:39:32一つのクラスにまとめてしまうと何がまずいんでしょうか。
0438デフォルトの名無しさん
2005/05/02(月) 13:44:38「一つのクラスにまとめる」という理由で派生クラスにしてしまうのは、あまりよろしくないと思う。
それだったら素直に基本クラスをメンバにした方がいいんじゃまいか…。
派生が威力を発揮するのは、ポリモーフィズム使うときとか。
0439デフォルトの名無しさん
2005/05/02(月) 14:21:30クラスのメソッド内部がフラグの嵐で読めなくなるから。
複数のパターンを派生で分けとけば、
新しいパターンが増えても派生クラスだけ注意してテストすれば良いが、
フラグ分岐の場合、全ソース注意してテストする必要があるから。
0440デフォルトの名無しさん
2005/05/02(月) 14:24:030441デフォルトの名無しさん
2005/05/02(月) 15:01:14ソリュージョンエクスプローラの枠とスタートページの枠が逆に入れ替わってしまったのですが
どうやったら元に戻りますか?
教えてください、お願いします。
0442デフォルトの名無しさん
2005/05/02(月) 15:24:32ドラッグ&ドロップ
配置がうまくいかずに滅茶苦茶になってしまったときは
[ツール][オプション][環境][全般] [ウィンドウ レイアウトのリセット]で
0443441
2005/05/02(月) 15:36:54[ツール][オプション][環境][全般] [ウィンドウ レイアウトのリセット]
これでうまくいきました。 ありがとうございます。
質問してみてよかったです。
0444デフォルトの名無しさん
2005/05/02(月) 17:45:19シングルスレッドのライブラリでは、
具体的には何が違うんですか?
0445デフォルトの名無しさん
2005/05/02(月) 18:05:010446デフォルトの名無しさん
2005/05/02(月) 20:15:580447デフォルトの名無しさん
2005/05/02(月) 21:39:350448デフォルトの名無しさん
2005/05/02(月) 21:49:42strtokをマルチスレッド環境で走らせてみればわかる
0449デフォルトの名無しさん
2005/05/02(月) 21:49:46複数のスレッドが同時に同じ関数を使おうとしたときにまずいことになる。
strtok()の使い方を考えてみるのがわかりやすいかな。
0450デフォルトの名無しさん
2005/05/03(火) 05:40:48マルチスレッド用にはできない。
関数に複数のアクセスがあったときに
静的変数の値が予期できないものになってしまう。
そんな単純な理由だったような
0451デフォルトの名無しさん
2005/05/03(火) 10:07:14手法を教えてください。
0452デフォルトの名無しさん
2005/05/03(火) 10:10:500453デフォルトの名無しさん
2005/05/03(火) 10:42:090454デフォルトの名無しさん
2005/05/03(火) 11:27:340456デフォルトの名無しさん
2005/05/03(火) 14:26:20#define TESTDLL_API __declspec(dllexport)
#else
#define TESTDLL_API __declspec(dllimport)
#endif
#include <atlbase.h>
#include <vector>
class TESTDLL_API Test {
private:
CComBSTR bstr;
std::vector<A> vec;
};
こんな感じでヘッダー作ると
CComBSTR とstd::vectorは_exportキーワードを使え
とワーニングが出るんですが
どうすれば回避できるのでしょう?
0457デフォルトの名無しさん
2005/05/03(火) 16:49:450458デフォルトの名無しさん
2005/05/03(火) 21:33:57マジレスすると・・・
クラスをexport/importするなゴルァ
0459908
2005/05/03(火) 22:16:05void sarch(char *in, char *filepath)
という関数を作成して
int main(void)
{
sarch(配列,"ファイル名");
return(0);
}
といった風に関数呼び出しを行うのですが、
sarchの中でfopenをし、fgetsを使うとエラーが出ます。
原因がわからないのですが
どの辺がおかしいですか?
0460デフォルトの名無しさん
2005/05/03(火) 22:22:100461デフォルトの名無しさん
2005/05/03(火) 22:31:23VisualC++6.0 だと
テンプレート引数としてテンプレートを指定すると
コンパイルが通りません。
template<class T, template<class> class C> class A{
C<T> a;
};
VisualC++6.0のテンプレート機能が弱いから、と聞いたのですが、
.NET (というかVisualC++6.0以降ではこれしか知らない)とかなら
コンパイル通りますか?
0462デフォルトの名無しさん
2005/05/03(火) 22:33:09template<class T, class C> class A {
typename C<T> a;
};
VC6だとtypename外した方がうまくいくかも。
0463デフォルトの名無しさん
2005/05/03(火) 22:51:33「error C2059: 構文エラー : '<'」となりますです。
「class C」だけでは C をテンプレートとして扱えないようです。
「template C<T> a;」(templateキーワードの明示的な指定)としても
駄目ぽでした。
>>462 さんのコードは >>462 さんの環境でコンパイルできましたか?
ちなみに >>461 のコードは Bjarne Stroustrup の
「プログラミング言語C++」からの抜粋です。
0464461
2005/05/03(火) 22:53:07上に書いた templateキーワードの明示的な指定は、
正しいかどうか分かりません。いろいろ試行錯誤してみましたが
やりたいことが実現できんとです…。
0465デフォルトの名無しさん
2005/05/03(火) 23:17:25それとも手段が目的なんだろうか?
0466デフォルトの名無しさん
2005/05/03(火) 23:35:040467デフォルトの名無しさん
2005/05/03(火) 23:35:25<html><head><META HTTP-EQUIV="Content-Type" content="text/html; charset=shift_jis">
</head><body><pre><table width=100% bgcolor=#CFCFE5><tr> <td> <font face=arial size=+3>
ビルド ログ
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>
</td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>
<h3>------- ビルド開始 : プロジェクト : sample、構成 : Debug|Win32 -------
</h3></pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
コマンド ライン</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0
bgcolor=#FFFFFF> </td><td width=*><pre>一時ファイル "c:\Documents and Settings\ouner\My Documents\Visual Studio Projects\sample\Debug\RSP000002.rsp" を作成しています。内容 :
[/Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Gm /EHsc /RTC1 /MLd /Fo"Debug/" /Fd"Debug/vc70.pdb" /W3 /c /Wp64 /ZI /TP
".\sample.cpp"]
コマンド ライン "cl.exe @"c:\Documents and Settings\ouner\My Documents\Visual Studio Projects\sample\Debug\RSP000002.rsp" /nologo" を作成しています。
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
出力ウィンドウ</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>コンパイルしています...
sample : error PRJ0003 : cl.exe' の起動中にエラーが発生しました。
0468デフォルトの名無しさん
2005/05/03(火) 23:36:29結果
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>
ビルドログは "file://c:\Documents and Settings\owner\My Documents\Visual Studio Projects\sample\Debug\BuildLog.htm" に保存されました。
sample - エラー 1、警告 0</pre></table><table width=100% height=20 bgcolor=#CFCFE5><tr><td><font face=arial size=+2>
</font></table></body></html>
エラーが1つだけあるらしいのですが、見付けられません。
警告はなかったです
0469デフォルトの名無しさん
2005/05/03(火) 23:38:560470デフォルトの名無しさん
2005/05/03(火) 23:42:01書き込むときに変えましたです
0471デフォルトの名無しさん
2005/05/03(火) 23:42:410472デフォルトの名無しさん
2005/05/03(火) 23:44:080473デフォルトの名無しさん
2005/05/03(火) 23:47:28すいませんが、手順を教えて下さい
2時間程エラーを探してるんですが、もう目が痛いです
0474デフォルトの名無しさん
2005/05/04(水) 00:05:50シンボルの付け方に互換性があれば
クラスをエクスポートするのは別に大丈夫でしょ?
MFCとかもあるし。
メンバーにテンプレートのクラスがあるのが問題点で解決方が不明。
0475デフォルトの名無しさん
2005/05/04(水) 00:06:32同じソースで秀丸でGUIコンパイルしたら、
無問題だったのですが、どうすれば良い結果が生まれるのでしょうか?
0476デフォルトの名無しさん
2005/05/04(水) 00:10:040477461
2005/05/04(水) 00:43:23VisualC++6.0のままでコンパイル通せる方法があれば儲け物、として
考えてるくらいで、コンパイラを変えることは検討しています。
ただ、変えてみて同じだったらお金の無駄になってしまうので
.NET で >>461 のコードが通るかどうかが知りたいです。
0478デフォルトの名無しさん
2005/05/04(水) 01:16:11今から、再インストールおっぱじめたいと思いますです
0479デフォルトの名無しさん
2005/05/04(水) 01:25:19関数名が表示されるけど、
今開いているソースファイルのみの関数名の表示は、どうやるんですか
0480デフォルトの名無しさん
2005/05/04(水) 01:37:35this->で書き始めれば、候補をメンバ関数に絞れる。
0481479
2005/05/04(水) 02:54:58ソースファイル中の関数名なんですけど。
他の開発環境では、ソース内の関数が表示されたんですが。
コードの量が増えてきて、
全部まるごと表示されたら、探すの大変だと思うんですが。
0482475
2005/05/04(水) 02:56:45これでようやく寝れます。「イント・ウィン・エーピーアイ・ウィンメイン」とお経のように唱えながら寝ます
0483458
2005/05/04(水) 04:02:03すべてのソースを晒しなさい。
ここに書くと読むのもあれなんで、自分のWebページで。
>>473
何を意図しているのかよくわからないので、
まずは落ち付いて、わかる文章で書き直してください。
>>474
シンボルの名前の問題だけではないのですよ。
ちょっと考えただけでも、
・C++以外の言語から使うのが難しい
・privateメンバですら追加不可能で、回避手段を予め仕込んでおく必要がある
・virtualどうすんのよ
っていう問題があるのですよ。
後々のことを考えたら、DLLで公開する部分は、
第一引数にオブジェクトのハンドルを渡すようなWin32 APIスタイルにしておき、
それをC++クラスでラップするラッパーのソースを提供したほうがいいと思います。
0484デフォルトの名無しさん
2005/05/04(水) 08:34:190485デフォルトの名無しさん
2005/05/04(水) 08:44:58> ちなみに >>461 のコードは Bjarne Stroustrup の
>「プログラミング言語C++」からの抜粋です。
それはVCの本じゃないからスレ違いだろ
VCを使いたければVCにあったコードを書け
単にそのコードを使いたいだけなら、それにあったコンパイラを使え
>1.1.3 処理系についてのコメント
>C++言語の一部としてつい最近採用されたばかりの
>機能を使っているサンプルは、一部の処理系ではコンパイルできなかった。
0486デフォルトの名無しさん
2005/05/04(水) 10:41:15VisualStudioのバージョンは?
つーか、開いているソースファイル内のクラスが左に列挙されていてそのメンバ関数が右に列挙されていると思うのだけど。
>>480
インテリセンスの話じゃないらしいよ。
0488デフォルトの名無しさん
2005/05/04(水) 10:52:02なにがありがとうだよ。訳わからねぇことぬかして質問にも答えねぇで一人で勝手に納得してんじゃねぇよ。
こちとら消化不良だぜぃ。
0489デフォルトの名無しさん
2005/05/04(水) 11:41:160491デフォルトの名無しさん
2005/05/04(水) 12:24:02スレ違い
その本はVCの本じゃない&初心者用の本じゃない
スレ違い&スレ違い
0492461
2005/05/04(水) 12:43:000493デフォルトの名無しさん
2005/05/04(水) 13:50:07VCプログラムでVC以外からの利用を考慮するのか
さすがだな
0494デフォルトの名無しさん
2005/05/04(水) 14:07:090495デフォルトの名無しさん
2005/05/04(水) 14:14:000496デフォルトの名無しさん
2005/05/04(水) 14:32:310497デフォルトの名無しさん
2005/05/04(水) 14:34:17クライアントプログラムがVCとはかぎらんだろ
VBからかもしれないしCかもしれないしDelphiかもしれない
0498デフォルトの名無しさん
2005/05/04(水) 15:05:560499デフォルトの名無しさん
2005/05/04(水) 15:14:250500デフォルトの名無しさん
2005/05/04(水) 15:17:00インターフェース用意したりすればunmanagedでも使えなかった?
0502デフォルトの名無しさん
2005/05/04(水) 17:55:54ソースファイル内の関数のみを表示させたいのです。
できないんだったらしょうがないんじゃないですか。
何故怒ってらっしゃる
0503デフォルトの名無しさん
2005/05/04(水) 19:22:57DLL利用者はVBやCからC++のクラスを使うのか?
0504デフォルトの名無しさん
2005/05/04(水) 20:07:33>488ならずとも怒りたくもなる罠。
0505479
2005/05/04(水) 20:26:29バージョン聞かれてるの気づかなかった。
.Net 2003( ver 7 )です。
説明下手で重ねてごめん。
0506デフォルトの名無しさん
2005/05/04(水) 23:41:26だからクラスをexportすんなゴルァ
後で泣いても知らんぞ。
0507デフォルトの名無しさん
2005/05/04(水) 23:55:18以下ループ
0508デフォルトの名無しさん
2005/05/05(木) 01:52:58そんなヲタ用語使われてもよく分かりません
0509デフォルトの名無しさん
2005/05/05(木) 02:04:55.NET 2003なのかVer.7なのかはっきりさせろ。
0510デフォルトの名無しさん
2005/05/05(木) 02:05:240511デフォルトの名無しさん
2005/05/05(木) 09:23:030512デフォルトの名無しさん
2005/05/05(木) 09:37:08ver.7は.Net 2002にあたる。
0513デフォルトの名無しさん
2005/05/05(木) 15:14:10(1) 使い慣れたMFC
(2) なんとなくATL
(3) フレームワーク使わない
(4) その他の言語
a: 文法は嫌いだが手軽さに負けてVB6
b: .NETは嫌いだが時代を考えてC#
c: ruby, pythonも面白いかも
VCからCOM/ActiveXを使おうと思って最近勉強を始めたのですが、
(RADじゃないのは承知ですが)シキタリがとても面倒で正直うんざりし、気持が(4)a. に傾きつつあります。
そこで、他の人はどのように感じてるんだろうと思い、カキコした次第です。
お兄ちゃんの体験談を聞かせて下さい
0514デフォルトの名無しさん
2005/05/05(木) 15:17:310515デフォルトの名無しさん
2005/05/05(木) 15:20:55大人は汚いと思います。
0516383
2005/05/05(木) 15:34:34OCXは面倒なのでVB6
0517デフォルトの名無しさん
2005/05/05(木) 17:34:010518デフォルトの名無しさん
2005/05/05(木) 19:57:49好きなのをどうぞ。
(1) 細かいこと気にしなければ楽だよ。
(2) これは細かいところまで手が届くけど、慣れるまでシンドイ。多少の罠がある。
(3) さすがにこれはシンドカッタ。インタフェースやCOMのメモリのリークのバグ取りが大変だったよ。
(4)
a VB6は楽なようで楽じゃない。MFCのほうがマシだと思う。
b これが一番楽で、細いかい所までOK。オススメです。
c これだけは使ったことない。ごめん。
0519479
2005/05/05(木) 20:29:020520513
2005/05/06(金) 00:23:47>>514
ごもっともです・・・でもその適材適所ぶりを伺いたいなあと
>>516
なるほど、そういった使い分けなのですか。勉強になります。
>>518
御丁寧にありがとうございます。
そうっすか、MFCを越え得るのはC#ですか。「やりやすそうだなー」と思いつつ、
関連スレのアンチ厨に押され遠慮していました。オススメとのことで、頑張ってこちらもトライしてみます。
若干のスレ違い、失礼致しました・・・
0521デフォルトの名無しさん
2005/05/06(金) 15:40:48VCのツールバーの位置を変えて、終了した後、
VCを起動し直すと、ツールバーの位置が元に戻ってしまうか、
別の位置になってしまいます。
カスタマイズしたツールバーの位置を保持しておくには
どうすればいいですか?
0522デフォルトの名無しさん
2005/05/06(金) 15:51:550523デフォルトの名無しさん
2005/05/06(金) 16:02:150524デフォルトの名無しさん
2005/05/06(金) 16:14:57構造体のメンバにbool型使いたいんですが、
関数の引数ではBOOL型を使用している事が多いみたいなんで・・・
TRUE = true , FALSE = false
は保証されてますか?
0525デフォルトの名無しさん
2005/05/06(金) 16:16:09うぇwwwっうぇ
wwwうはっwwwっ
おkwww
うはっwwwwwwwwwwwwwwwっうぇうぇwww
っwおkwwwうはっwwwおkwww
おkwww
0526デフォルトの名無しさん
2005/05/06(金) 16:51:35BOOL型はintの別名。
数値的にはTRUE == trueだが、代入においては警告が出るので注意。
尚、BOOL型はFALSE(=0)、TRUE(=1)以外に-1を取ることもあるので要注意。
0528デフォルトの名無しさん
2005/05/06(金) 16:58:52私ならboolにしておいて、MFCとのI/Fにのみ気を遣うようにするね。
BOOLなんて使ったら、一々値の範囲に気を遣わなければならなくなる。
∵>526故。
0529デフォルトの名無しさん
2005/05/06(金) 17:00:51?
まさかTRUE/FALSEと==で比較するなんてバカなことしてるのか?
0530デフォルトの名無しさん
2005/05/06(金) 17:05:39例えば
void func(bool foo, BOOL bar);
とする。
fooはtrue/falseしか取らないが、barはTRUE/FALSE以外の値もとりうる。
#まぁ、一人で書いているなら余り心配しないが。
0531デフォルトの名無しさん
2005/05/06(金) 17:08:500が偽で0以外が真と扱ってれば、TRUE/FALSE以外の値でも問題ないだろ。
実際WinAPIが返すBOOLの説明もzeroかnonzeroって書いてあるんだから。
0532デフォルトの名無しさん
2005/05/06(金) 17:09:11if (bar == TRUE) なんてやるとまずいわけで。
0533デフォルトの名無しさん
2005/05/06(金) 17:13:190534デフォルトの名無しさん
2005/05/06(金) 17:14:07関数を書くほうはそれでもいいが、呼ぶ方もそう思ってくれる保証はない。
BOOLを返り値とするAPIが-1を返すわけだが、その値を使われる可能性もある罠。
で、判定文を通すかどうかと言うより、そういう余計な心配したくないと言う話。
0535デフォルトの名無しさん
2005/05/06(金) 17:15:37しかしboolが無い時代のほうが長かったのだよ
0536デフォルトの名無しさん
2005/05/06(金) 17:55:25BOOLなんて代用品は使いたくない。
0537デフォルトの名無しさん
2005/05/06(金) 17:57:05それを別の使い方するヤツが居るからいけねぇんだよ
0538デフォルトの名無しさん
2005/05/06(金) 17:57:450539デフォルトの名無しさん
2005/05/06(金) 18:09:190540デフォルトの名無しさん
2005/05/06(金) 18:14:030541デフォルトの名無しさん
2005/05/06(金) 18:14:560542デフォルトの名無しさん
2005/05/06(金) 18:17:00って、WM_QUITが飛んでこないから、無限ループすっぞ。
0543デフォルトの名無しさん
2005/05/06(金) 18:29:180544デフォルトの名無しさん
2005/05/06(金) 18:32:010545デフォルトの名無しさん
2005/05/06(金) 19:00:42マネージ形式の開発が主流になるのでしょうか?
0546デフォルトの名無しさん
2005/05/06(金) 19:28:320547デフォルトの名無しさん
2005/05/06(金) 19:49:18流れですか・・・。やっぱりネイティブ形式にしかC++の真価は
見出せないってことか。
0548デフォルトの名無しさん
2005/05/06(金) 22:19:170549デフォルトの名無しさん
2005/05/06(金) 22:23:00BOOLの方が先に登場したので
代用品ではありません。
0550デフォルトの名無しさん
2005/05/06(金) 22:32:54boolのような型が存在しなかったからtypedef intのBOOLが生まれた。intで代用したと言わずしてなんと言えばいい。
もし大昔からboolがあればBOOLだってきっとboolのtypedefになっていただろう。
0551デフォルトの名無しさん
2005/05/06(金) 22:35:510552デフォルトの名無しさん
2005/05/06(金) 22:38:02同一じゃなかったらAPIに使えないよね。
0553デフォルトの名無しさん
2005/05/06(金) 22:38:240554デフォルトの名無しさん
2005/05/06(金) 22:43:03昔はWCHARしかなかった。
0555デフォルトの名無しさん
2005/05/06(金) 22:56:12まず、VCのバージョンによって、サイズが違うという事実がある。
0556デフォルトの名無しさん
2005/05/06(金) 23:02:11データ型のサイズはコンパイラで変わるんじゃなくマシン環境で変わるんだが?
0557デフォルトの名無しさん
2005/05/06(金) 23:25:420558デフォルトの名無しさん
2005/05/06(金) 23:29:420559デフォルトの名無しさん
2005/05/06(金) 23:30:360560デフォルトの名無しさん
2005/05/06(金) 23:35:400561デフォルトの名無しさん
2005/05/07(土) 00:03:210562デフォルトの名無しさん
2005/05/07(土) 00:54:09嘘を教えるな
FALSE == false
FALSE != TRUE
false != true
なだけであって、
true == TRUE
true != TRUE
が成り立つかどうかは決まってない。
0563デフォルトの名無しさん
2005/05/07(土) 00:55:40コンパイラやtypedefによって変わるよ。
0564デフォルトの名無しさん
2005/05/07(土) 00:55:540565デフォルトの名無しさん
2005/05/07(土) 00:58:44int に BOOLを代入してよいなら、
typedefなんてせず#defineでいいだろ。
#defineではなくtypedefするということは、一緒だと思うな、ということだよ。
サイズはいくつかなんて意識するなよsizeof使え。
そして、APIやファイルなど、サイズを意識しないといけないところだけ、
BYTE/WORD/DWORD
を使いなさい。
0566デフォルトの名無しさん
2005/05/07(土) 01:03:45このスレで何語ってんの?
そこまで言うなら、FALSE == falseもFALSE != TRUEも決まってないね。
0567デフォルトの名無しさん
2005/05/07(土) 01:43:37FALSE != TRUEも決まってないね。
FALSE != TRUEも決まってないね。
FALSE != TRUEも決まってないね。
FALSE != TRUEも決まってないね。
0568デフォルトの名無しさん
2005/05/07(土) 02:32:54typedef int BOOL;
#define FALSE 0
#define TRUE 1
を無視して>562とするなら、>566だな。
このスレ的には、WinDef.hをインクルードするという前提でもいいと思うが。
0569デフォルトの名無しさん
2005/05/07(土) 04:18:09>562とするなら、>566だな。
>562とするなら、>566だな。
>562とするなら、>566だな。
>562とするなら、>566だな。
0570デフォルトの名無しさん
2005/05/07(土) 08:07:380571デフォルトの名無しさん
2005/05/07(土) 08:29:470572デフォルトの名無しさん
2005/05/07(土) 11:31:16単なるテキストファイルとして認識しているようで予約語も全て単色で表示されてしまいます
環境は
Windows2000 SP4
Visual C++ 6.0 Pro SP6
です。
よろしくお願いします
0573デフォルトの名無しさん
2005/05/07(土) 11:32:330574デフォルトの名無しさん
2005/05/07(土) 11:59:200575デフォルトの名無しさん
2005/05/07(土) 12:19:230577デフォルトの名無しさん
2005/05/07(土) 12:58:010578デフォルトの名無しさん
2005/05/07(土) 13:05:20そもそも、VCはC/C++だけを使った開発環境であり、
yaccは「一部C構文を使用している」だけの、別言語だろうが
0579デフォルトの名無しさん
2005/05/07(土) 13:31:38int _tmain(int argc, _TCHAR* argv[])
{
char* a = LPSTR(100); // OK
char* b = (char*)100; // OK
char* c = char*(100); // コンパイルエラー error C2062: 型 'char' は不要です。
return 0;
}
VC++.NET2003なんですが、
上記のエラーが出るのは何ででしょう?
そもそもこんな書き方C++では許してないんですか?
0580デフォルトの名無しさん
2005/05/07(土) 13:36:430581デフォルトの名無しさん
2005/05/07(土) 13:37:00あとおまえ、ポインタ型に適当な数値代入すんなよ・・・
0582デフォルトの名無しさん
2005/05/07(土) 13:40:53許しませんよ
0583デフォルトの名無しさん
2005/05/07(土) 13:50:03式にいきなりcharが出てきたらコンパイラも驚くだろう
0584579
2005/05/07(土) 13:53:39なぜ
int a = int(1.0f); は良いのに
char* a = char*(100); は駄目なんですか?
0585デフォルトの名無しさん
2005/05/07(土) 13:56:300586デフォルトの名無しさん
2005/05/07(土) 14:00:30class char*
{
public :
char*( int);
};
char* a = char*(100);
自分の認識としてはこんな感じなんですが・・
なんで駄目なのか納得いかない感じです。
0587383
2005/05/07(土) 14:03:40char*(100);
では、
(char)*(100);
といいう意味の型宣言なのか(これもおかしいが)
(char*)(100);
といいう意味の型宣言なのか
char * (100);
といいう意味の四則演算なのか区別できない。
0588デフォルトの名無しさん
2005/05/07(土) 14:03:49何でわざわざここでC++の質問するかな
0589デフォルトの名無しさん
2005/05/07(土) 14:04:120590579
2005/05/07(土) 14:04:35これでうまくいきました。
char* a = reinterpret_cast< char* >(100);
あんまり納得いってないですけど・・
0591デフォルトの名無しさん
2005/05/07(土) 14:07:240592デフォルトの名無しさん
2005/05/07(土) 14:08:280593デフォルトの名無しさん
2005/05/07(土) 14:09:150594579
2005/05/07(土) 14:09:59>(char)*(100);
>といいう意味の型宣言なのか(これもおかしいが)
これはありえません。
>(char*)(100);
>といいう意味の型宣言なのか
char*というのはひとつの型なんですから
char*(100); と (char*)(100); は同じ意味と
解釈して間違いないと思います。
>char * (100);
>といいう意味の四則演算なのか区別できない。
これはありえません。
>>588
VC++のコンパイラのバグかなと思ったので。
0595デフォルトの名無しさん
2005/05/07(土) 14:11:120596デフォルトの名無しさん
2005/05/07(土) 14:11:360597デフォルトの名無しさん
2005/05/07(土) 14:13:17なら、他の環境で試してみるべきだろう。
0598デフォルトの名無しさん
2005/05/07(土) 14:14:360599デフォルトの名無しさん
2005/05/07(土) 14:16:120600579
2005/05/07(土) 14:16:36C++からは、コンストラクタふうの型キャストが出来るようになってます。
だから、 int a = int(1.0f); こういう記述が出来るのは納得いきます。
なのにもかかわらず char* a = char*(100); これは駄目というのは納得できないんです。
構文解析の問題という意見もありましたが、これはあいまいな表現ではないのは明白です。
0601デフォルトの名無しさん
2005/05/07(土) 14:20:360602デフォルトの名無しさん
2005/05/07(土) 14:20:400603デフォルトの名無しさん
2005/05/07(土) 14:21:03> >(char)*(100);
> >といいう意味の型宣言なのか(これもおかしいが)
> これはありえません。
と言いますが、
char* c = char*(100);
をコンパイラは
char* c = (char*)(char)*((char*)100);
と捉える事も可能なのですよ?
0604デフォルトの名無しさん
2005/05/07(土) 14:36:070605デフォルトの名無しさん
2005/05/07(土) 14:40:54100は数値リテラルなので「*100」という解釈は普通されないのでは?
0606デフォルトの名無しさん
2005/05/07(土) 14:55:23関係ない質問になると書き込みが増える不思議
VC初心者でもC/C++の質問なら答えられるということか
0607デフォルトの名無しさん
2005/05/07(土) 14:59:120608デフォルトの名無しさん
2005/05/07(土) 14:59:390609デフォルトの名無しさん
2005/05/07(土) 15:10:120610デフォルトの名無しさん
2005/05/07(土) 16:01:41たぶん、char* はオブジェクトのタイプじゃないからだと思う。
char( 100 ) は、charタイプのインスタンス化&コンストラクタ呼び出しのようなもので、
100で初期化したcharの一時オブジェクトを生成する(実際のコードでは、c = 100 されるだけ)。
ところが、char* のコンストラクタ(論理的に「のようなもの」)が存在しないので、インスタンス化しようがない。
と、思うんだけどしかし、これで通ってしまうのでどういう理屈かはわからん。
typedef char* charPo;
char* c = charPo( 100 );
デバイスドライバのI/Oなど,理由があってポインタに即値を代入したいのなら普通に,
char* c = reinterpret_cast< char* >( 100 );
0611デフォルトの名無しさん
2005/05/07(土) 16:08:17お気に入りに入ってるんだけど、みなさんはどういう人ですか?
0612デフォルトの名無しさん
2005/05/07(土) 16:10:25秋葉系デブです。
0613デフォルトの名無しさん
2005/05/07(土) 16:11:47ピザ食ってます。
0614デフォルトの名無しさん
2005/05/07(土) 16:13:18組み込み型もポインタ型もクラスと同様にコンストラクタ呼び出しや一時オブジェクト生成の書き方ができるけど
ポインタ型だけは構文的に書けないのでtypedefしないといけない
ということではなかろか?
0615610
2005/05/07(土) 16:16:24typedefってプリプロセッサで展開されないんだろうか?
0616デフォルトの名無しさん
2005/05/07(土) 16:17:210617デフォルトの名無しさん
2005/05/07(土) 16:23:540618デフォルトの名無しさん
2005/05/07(土) 16:26:32仕事中
0619デフォルトの名無しさん
2005/05/07(土) 16:30:25言語の仕様なのか
どっちだと思います?
0620デフォルトの名無しさん
2005/05/07(土) 16:31:38char* c = char*(100);
だとまず、*100という演算式になるのでは。
でもcharは変数にはなれないし、型としてみてもキャストにすらなってないのでエラー。
char* a = LPSTR(100);では、typedef は#defineのような単純な文字列展開ではないので
(char*)(100)みたいにキャストしたのと同じ効果が期待できるんじゃないかと。
適当でスマソ
0621デフォルトの名無しさん
2005/05/07(土) 16:33:370622デフォルトの名無しさん
2005/05/07(土) 16:34:060623デフォルトの名無しさん
2005/05/07(土) 16:36:55もうすこし、高度な餌をクレ
0624デフォルトの名無しさん
2005/05/07(土) 16:37:16>ポインタ型だけは構文的に書けない
char*(100)
では*の意味が曖昧だから
(char*)(100)
こうかかなきゃいけないってことですか?
typedefするとcharと*が明示的にくっつけられる為
その必要はないと。
これって言語仕様の不備ですよね。
納得しました。
これで去ります。ありがとうございました。
0625デフォルトの名無しさん
2005/05/07(土) 16:38:57了解しました。
よくわかりました。
0626デフォルトの名無しさん
2005/05/07(土) 16:41:300627デフォルトの名無しさん
2005/05/07(土) 16:42:040628デフォルトの名無しさん
2005/05/07(土) 16:43:020629デフォルトの名無しさん
2005/05/07(土) 16:43:290630デフォルトの名無しさん
2005/05/07(土) 16:48:35自分は、
char*(100);
をchar*型オブジェクトのコンストラクタ呼び出しを意図して書いているんです。
それが
char * 100;
として解釈される。これは言語上の不備以外何ものでもないと思います。
具体的にはポインタ型には「*」をつける、これが駄目だと思います。
もっと別なやり方ならこんな問題は起こらないはずです。
0631610
2005/05/07(土) 16:50:59そしたら、typedef で宣言された型が使われているプロトタイプとか
どういう機序でパースされるのか教えてほしい。
0632デフォルトの名無しさん
2005/05/07(土) 16:51:310633デフォルトの名無しさん
2005/05/07(土) 16:52:59プリプロセッサがどの段階で動くか考えてみろよ
0634デフォルトの名無しさん
2005/05/07(土) 16:53:15もう、良いよ、とりあえずブロック定義のEBNFでも読め
0635デフォルトの名無しさん
2005/05/07(土) 16:56:51EBNFの定義だとそう解釈されちゃうから
仕様がねーだろ、そういうことですか?
頭固いですよ。
0636デフォルトの名無しさん
2005/05/07(土) 16:58:27お前さんの意図に反してたら不備扱いか。
0637デフォルトの名無しさん
2005/05/07(土) 17:00:54FORTRANもEBNFで定義できるし・・・
0638デフォルトの名無しさん
2005/05/07(土) 17:01:39メンバでなくとも"->"で統一するとかもっと別の演算紙くらいあっただろうに。
0639デフォルトの名無しさん
2005/05/07(土) 17:02:580640610
2005/05/07(土) 17:15:02いやだからプリプロセッサでなくてもいいから、typedefで宣言した
タイプがどういう機序で例えば関数プロトタイプ使われるのか教えてください。
じゃあ、VC++ は所謂pre-processorとoptimizerを除いて何パスですか?
変数表はいつ作成されますか?typedefで宣言したタイプはどのように
変数表にレジストされますか?そして型チェックはどのタイミングで行われますか?
0641デフォルトの名無しさん
2005/05/07(土) 17:16:34typedefってプリプロセッサで展開されないんだろうか?
typedefってプリプロセッサで展開されないんだろうか?
typedefってプリプロセッサで展開されないんだろうか?
typedefってプリプロセッサで展開されないんだろうか?
typedefってプリプロセッサで展開されないんだろうか?
0642ついでにTRUE/FALSE
2005/05/07(土) 17:17:41FALSE = 0x00000000
TRUE = !FALSE (x86アーキテクチャでは全ビット反転=0xFFFFFFFF)
で定義されてますが、こうしておくとコンパイルの時に
x86命令のJZ/JNZに直接渡せるので、ゼロと非ゼロという定義方法が採用されてマッスル。
0643デフォルトの名無しさん
2005/05/07(土) 17:18:58はいはい、分かりました、
俺はAlgolが最高のプログラム言語だと思ってる
0644デフォルトの名無しさん
2005/05/07(土) 17:19:42typedefってプリプロセッサで展開されないんだろうか?
typedefってプリプロセッサで展開されないんだろうか?
typedefってプリプロセッサで展開されないんだろうか?
typedefってプリプロセッサで展開されないんだろうか?
typedefってプリプロセッサで展開されないんだろうか?
0645デフォルトの名無しさん
2005/05/07(土) 17:20:020646610
2005/05/07(土) 17:20:17"pre-process" の意味わかりますか?
"pass"の意味わかりますか?
pass のパスとプリプロセスの違いは何ですか?
0647デフォルトの名無しさん
2005/05/07(土) 17:20:43プリプロセッサもコンパイラの拡張だが?
0648デフォルトの名無しさん
2005/05/07(土) 17:20:56教えてくださいオネガイシマス
教えてくださいオネガイシマス
教えてくださいオネガイシマス
教えてくださいオネガイシマス
教えてくださいオネガイシマス
0649デフォルトの名無しさん
2005/05/07(土) 17:26:20風呂入らなくて回りに嫌がられても平気だし。
0650デフォルトの名無しさん
2005/05/07(土) 17:28:190651デフォルトの名無しさん
2005/05/07(土) 17:39:44#から始まる文が出てきたらプリプロセッサに処理を渡す。
予約語以外の識別子が出てきたら、それ以前に定義されていないかを調べる。
見つからない場合はコンパイルエラー。みたいな。
もし、変数表やら関数プロトタイプを一度にデータベース化してるなら
関数プロトタイプを書かずにmain()以降に関数を置いても、エラーにする必要はないし。
0652デフォルトの名無しさん
2005/05/07(土) 18:02:30下のコードは型チェックでエラーなわけだが、つまり、typedef int ii;
で定義されているii型はちゃんと「本当の」構文解析(process)【前(pre)】に"int"型に【展開】されているわけですよ。
int* _test( int* p ) { return p; }
int main(...) {
typedef int ii;
ii i = 0;
_test( i );
}
で、なんでこういう話になったかというと、
char* c = char*( 100 ); ⇒ ×で、
typedef char* charPo; char* c = charPo( 100 ); ⇒ ○
だからです。単純に*(100)の優先順位の問題のようですが。
0653デフォルトの名無しさん
2005/05/07(土) 18:09:180654デフォルトの名無しさん
2005/05/07(土) 18:14:030655デフォルトの名無しさん
2005/05/07(土) 18:26:33デートしませんか??
0656デフォルトの名無しさん
2005/05/07(土) 19:22:55今はメモリが豊富なので統合されてますが。
「プリプロセッサ」が処理するのは#include,#define,#ifdef,#ifなどの#〜のキーワードだけです。
で、typedefですが、これは「プリプロセッサ」のキーワードではなく「C言語コンパイラ」のキーワードです。
つまり「プリプロセッサ」の後に処理されます。
また、typedefは型を置き換えるのではなくて、型を「拡張」するために存在します。
>>652の例では、"ii"は"int"に展開されるのではなくて、intと同じ"32bit符号付整数型"として扱われます。
classやstruct、unionをtypedefした時も同じで、"32bitの(内部処理的な)ポインタ型"になります。
もし"展開"していたら、同じclassを多重定義することになってしまいます。
typedef class tag_tcls { int x; int y } T_CLS;
T_CLS a;
T_CLS b;
↓展開すると
class tag_tcls { int x; int y } a;
class tag_tcls { int x; int y } b;
0657デフォルトの名無しさん
2005/05/07(土) 19:24:070658デフォルトの名無しさん
2005/05/07(土) 19:27:49ポストプロセスだろうにw
0659デフォルトの名無しさん
2005/05/07(土) 19:31:27>>「本当の」構文解析(process)【前(pre)】に"int"型に【展開】されているわけですよ
ここの部分が違うと思いまして…
0660デフォルトの名無しさん
2005/05/07(土) 19:38:02パーサ、コードジェネレータ、最適化、アッセンブラーだろう
0661デフォルトの名無しさん
2005/05/07(土) 19:39:100662デフォルトの名無しさん
2005/05/07(土) 19:40:54書く場所も重要
0663デフォルトの名無しさん
2005/05/07(土) 19:41:23今時そんな回りくどい処理なんかしてないぞ
0664デフォルトの名無しさん
2005/05/07(土) 19:46:300665デフォルトの名無しさん
2005/05/07(土) 20:15:070666ダミアソ
2005/05/07(土) 21:09:320667デフォルトの名無しさん
2005/05/07(土) 22:11:17Shall we dance ?
0668デフォルトの名無しさん
2005/05/08(日) 00:27:240669デフォルトの名無しさん
2005/05/08(日) 01:45:52対処法みたいなのはありますでしょうか?
0670デフォルトの名無しさん
2005/05/08(日) 01:52:040671デフォルトの名無しさん
2005/05/08(日) 01:52:31C言語をゼロから勉強し直す。
0672デフォルトの名無しさん
2005/05/08(日) 02:17:410673デフォルトの名無しさん
2005/05/08(日) 02:28:59if (条件1)
A;
B;
C;
0674デフォルトの名無しさん
2005/05/08(日) 02:52:39}
↓このスタイルに変えれば解決するよ。
if ()
{
}
0675デフォルトの名無しさん
2005/05/08(日) 03:15:56選ぶとメッセージを追加出来るとあるが,それって.netの話?どうやって追
加するんですか?
0676デフォルトの名無しさん
2005/05/08(日) 03:19:07つか6から移ったら激しくやり方変わってて最初戸惑った
0677デフォルトの名無しさん
2005/05/08(日) 03:24:530678675
2005/05/08(日) 03:33:49クラスウィザード?それってどこです?右クリックで出てくるポップアップのは
ハイライトされてなくて選べない・・・
0679デフォルトの名無しさん
2005/05/08(日) 03:36:01Ctrl+W
ダイアログに貼ってあるコントロールを右クリックしてClassWizard
0680675
2005/05/08(日) 03:47:100681675
2005/05/08(日) 03:49:56ガリっと書くしかないの?
0682デフォルトの名無しさん
2005/05/08(日) 03:53:43http://homepage3.nifty.com/ishidate/vcpp6_4/vcpp6_4.htm
少しは検索したりしてはどうだい?
0683675
2005/05/08(日) 04:01:100684デフォルトの名無しさん
2005/05/08(日) 04:06:12CWnd派生のクラスなのにClassWizardのクラス一覧に出てないのなら小細工が必要。
http://homepage3.nifty.com/ishidate/vcpp6_4/C60601_5.jpg
0685デフォルトの名無しさん
2005/05/08(日) 04:10:02どうやって作ったウィンドウかとか、
MFCか否かとか説明不足。
0686デフォルトの名無しさん
2005/05/08(日) 07:27:530687デフォルトの名無しさん
2005/05/08(日) 09:23:03この中で、例題を入れたらコンパイルエラーになってしまい、
エラーがどうしても取れません。もし原因わかったら教えていただけますでしょうか。
[環境]
WindowsXP 64bitEdition + Visual C++ 2005 Express Edition Beta 2
[内容]
(ReportList.h)
public:
void ReprtItem();
void ReprtItem( DateTime date, String ^name, String ^kind, int money );
~ReportItem();
(ReportList.cpp)
void ReportItem::ReprtItem()
{
// フィールドを初期化する
・・・ 省略 ・・・
}
// 引数付のコンストラクタ
ReportItem::ReportItem( DateTime date, String ^name, String ^kind, int money )
{ //★ここで C2511エラー発生
・・・ 省略 ・・・
}
0688デフォルトの名無しさん
2005/05/08(日) 09:23:37上記クラスを追加して、ビルドすると
「error C2511: 'HomeBank::ReportItem::ReportItem(System::DateTime,System::String ^,System::String ^,int)' : オーバーロードされたメンバ関数が 'HomeBank::ReportItem' にありません。」
となる。
型宣言のvoidを、付与/削除すると
「C2533: 'HomeBank::ReportItem::{ctor}' : コンストラクタの宣言に戻り値の型が含まれています。」
となるため、voidの付け方はこれでよさそうな気がする。
---
丸一日悪戦苦闘したのですが、例題通りいれても、void付加しても C2511エラーだけは消せません。
どなたかご教授いただけると助かります。
0689デフォルトの名無しさん
2005/05/08(日) 09:36:44>void ReprtItem();
>void ReprtItem( DateTime date, String ^name, String ^kind, int money );
voidは要らない。「^」はなに? 「&」か「*」のTypo?
0690デフォルトの名無しさん
2005/05/08(日) 09:45:13その例題はC#だと思うが。
0691デフォルトの名無しさん
2005/05/08(日) 09:52:56早速のありがとうございます。
>>void ReprtItem();
>>void ReprtItem( DateTime date, String ^name, String ^kind, int money );
>voidは要らない。
voidはずすと
「error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません」
になってしまいます。
どうも、VS2005から型宣言に厳しくなったみたいです。??
>「^」はなに? 「&」か「*」のTypo?
VS2003の例題では「*」でした。未定義エラーが出たので
VS2005のStringのHELPみて、 「^」にしてます。
・・ということは、「^」なんてコーディングは本来無い??(64bitポインタ指定かと勝手に思ってました)
0692デフォルトの名無しさん
2005/05/08(日) 09:56:24え?・・と思って入門書みたら、 「Visual C++ .NET 2003」でした。
あと、例題から直したの忘れてましたが、 「*」→「^」にしてます。
書きもれすみません
0693デフォルトの名無しさん
2005/05/08(日) 10:04:44例題から直したの忘れてましたが、 「*」→「^」にしてます。
例題から直したの忘れてましたが、 「*」→「^」にしてます。
例題から直したの忘れてましたが、 「*」→「^」にしてます。
例題から直したの忘れてましたが、 「*」→「^」にしてます。
0694デフォルトの名無しさん
2005/05/08(日) 10:08:04っwwwwwwwwwwwwっうぇwwwwww
うはっwww
おkwwwwwwwwwwwwっうぇっうぇ
wwwwwwおkwwwっうぇおkwwwうはっwww
0695デフォルトの名無しさん
2005/05/08(日) 10:12:20HELPの例文あちこち見たんですが、ポインタ指定が 「*」→「^」になってるように見えます。
HELP解説、英語なので全部そうなのか、「*」の表記方法もあるのかはよくわかりません。ごめんなさい。
0696デフォルトの名無しさん
2005/05/08(日) 10:19:11欧文には *が上に小さく書かれるフォントがある。拡大してみなさい。
この話はスレ違い。
http://lists.w3.org/Archives/Public/www-style/2001Oct/att-0195/kcharselect-Verdana.png
0697デフォルトの名無しさん
2005/05/08(日) 10:27:25ガベージコレクトオブジェクトへの参照とかそんな感じだったような気がする。
0698デフォルトの名無しさん
2005/05/08(日) 10:45:18アドバイスありがとうございます。
参考にしたHELP画面は以下のページにありました。
http://msdn2.microsoft.com/library/w4ctbshy(en-us,vs.80).aspx
サンプルをcopy&pasteでメモ帳に貼り付けて、眺めて見ましたが「^」で大丈夫そうです。
0699デフォルトの名無しさん
2005/05/08(日) 11:08:20ありがとうございます。ぐぐって見たところ、そのもずばりの解説ページは見つかりませんでしたが
検索で引っかかるサイトの例文には、 「String ^」となってました。
あと、>>687で質問させていただいた件ですが、
HELPが以下のURLにありました
http://msdn2.microsoft.com/library/20fs9x81(en-us,vs.80).aspx
もう一回読んで見たんですがやっぱりエラー原因がよくわかりません。
0700デフォルトの名無しさん
2005/05/08(日) 11:09:25property System::String ^
property System::String ^
property System::String ^
0701デフォルトの名無しさん
2005/05/08(日) 11:10:57実態定義でvoid宣言してねぇじゃねぇか
0702デフォルトの名無しさん
2005/05/08(日) 11:24:01>ReportItem::ReprtItem()
単にコンストラクタの宣言が間違ってるってだけやん。
0703デフォルトの名無しさん
2005/05/08(日) 11:39:13>>702
これって、頭にvoid付けて
void ReportItem::ReportItem( DateTime date, String ^name, String ^kind, int money )
にしろってことですよね?
「error C2533: 'HomeBank::ReportItem::{ctor}' : コンストラクタの宣言に戻り値の型が含まれています。」
http://msdn2.microsoft.com/library/tcz112eb(en-us,vs.80).aspx
になってしまいます orz
0704デフォルトの名無しさん
2005/05/08(日) 11:48:11宣言、実装ともに型宣言なしにしろ
0705デフォルトの名無しさん
2005/05/08(日) 11:56:22「error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません」
http://msdn2.microsoft.com/library/ms173696(en-us,vs.80).aspx
・・・orz
void全部消したんですが、ヘッダのところでエラーになってしまいました。
0706デフォルトの名無しさん
2005/05/08(日) 12:12:55これが大前提
宣言部、実装部両方とも取ってエラーが出るんなら別のとこだろ
0707デフォルトの名無しさん
2005/05/08(日) 12:23:56オーバーロード部分が無しなら、>>687 の記述でOK(void有り)なんですが・・
もう少し調べてみます。
いろいろ教えて頂きありがとうございました。
0708デフォルトの名無しさん
2005/05/08(日) 14:39:07それを前提に、もういちど687とか702をよ〜くみてみるんだな。
0709デフォルトの名無しさん
2005/05/08(日) 14:50:04げげげ!わかっちゃいました・・・・
×ReprtItem → ○ReportItem
いま修正したら、きれいにコンパイル通りました。
>>706さんの言ったとおりvoidも必要なかったです。・・・orz
丸2日ずっと見ててもわからなかったのに〜〜〜すげーショック!です。
でも、皆さんのおかげで、すげーC++の基礎が理解できました。
ありがとう・・本当にありがとうございます。 m(__)m
0710デフォルトの名無しさん
2005/05/08(日) 14:57:40それでもオーバートードされたメンバ関数がありませんって出る時は
十中八九関数名の部分が宣言部と実装部で違ってる
0711デフォルトの名無しさん
2005/05/08(日) 14:58:05オーバーロード ○
0712デフォルトの名無しさん
2005/05/08(日) 15:27:090713デフォルトの名無しさん
2005/05/08(日) 15:29:380714デフォルトの名無しさん
2005/05/08(日) 17:12:18違ってたらわかりそうなもんだけど
最近の入門書ならサンプルコードそのまんまビルドするだけじゃね?
0715デフォルトの名無しさん
2005/05/08(日) 21:41:340716デフォルトの名無しさん
2005/05/08(日) 22:33:330717デフォルトの名無しさん
2005/05/08(日) 23:50:38このライブラリをVC6.0でコンパイルすると
hoge.lib(hoge.obj) : error LNK2001: 外部シンボル "__vscprintf" は未解決です
とエラーがでます。
_vscprintfは6.0の頃には存在しなかった関数みたいですが
エラーがでないようにするにはどうしたらいいですか?
0718デフォルトの名無しさん
2005/05/09(月) 01:27:140719デフォルトの名無しさん
2005/05/09(月) 02:01:56唐揚げにして食っちまうぞヴォケ!!!!!!
0720デフォルトの名無しさん
2005/05/09(月) 03:31:31光に寄ってくる虫を食ってるようだ。
ただの雨蛙のくせに激しく肥満だったがなw
0721デフォルトの名無しさん
2005/05/09(月) 05:10:340722デフォルトの名無しさん
2005/05/09(月) 06:31:320723デフォルトの名無しさん
2005/05/09(月) 08:38:58と ) | |
Y /ノ 人
/ ) < >__∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>722
0724デフォルトの名無しさん
2005/05/09(月) 09:03:56自分でライブラリ作る前に標準ライブラリのソース読め
0725デフォルトの名無しさん
2005/05/09(月) 14:31:220726デフォルトの名無しさん
2005/05/09(月) 15:08:42と ) | |
Y /ノ 人
/ ) < >__∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>725
0727デフォルトの名無しさん
2005/05/09(月) 16:18:05と ) | |
Y /ノ 人
/ ) < >__∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>1-4294967295
0728デフォルトの名無しさん
2005/05/09(月) 18:45:12だから、ぬるぽなのか蛙なのかわかんねぇって!!
0729デフォルトの名無しさん
2005/05/09(月) 18:46:42と ) | |
Y /ノ 人
/ ) < >__∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>728
0730デフォルトの名無しさん
2005/05/09(月) 18:48:45と ) | |
Y /ノ 人
/ ) < >__∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>1-1000
0731デフォルトの名無しさん
2005/05/09(月) 18:49:050732デフォルトの名無しさん
2005/05/09(月) 18:52:00( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>1-18446744073709551615
0733デフォルトの名無しさん
2005/05/09(月) 18:52:34と ) | |
Y /ノ 人
/ ) < >__∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>0-65535
0734デフォルトの名無しさん
2005/05/09(月) 18:52:370735デフォルトの名無しさん
2005/05/09(月) 18:54:11と ) | |
Y /ノ 人
/ ) < >__∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>722-734
0736デフォルトの名無しさん
2005/05/09(月) 19:05:180737デフォルトの名無しさん
2005/05/09(月) 20:30:000738デフォルトの名無しさん
2005/05/09(月) 20:35:55| (3) 15版 朝 日 新 聞
| ──────────────────────────
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| | | ┌‐──── ┐
| | ( ・∀・) | | ガッ | | | | | .| _「l__「「」|
| | と ) | | | | | | | .相 | 'ーi r─i| |
| | Y /ノ 人 | ── 次. | ノノ . ノノ. .|
| | / ) < >_∧∩ | | | | | .ぐ. | ~ ^´ |
| | _/し' //. V`Д´)/ | | | | | ぬ ! |
| | (_フ彡 / | ── ○ |. |
|. └───────────┘ | | | | ぽ ! |
| ガッされる>>734容疑者─9日 . | | | | に | 「「」 /7 |
| ──────────────── .怒 .| ノ ' |
0739デフォルトの名無しさん
2005/05/09(月) 20:44:270740デフォルトの名無しさん
2005/05/09(月) 22:30:19俺も夏休みの宿題は小学校高学年から中学卒業まで8月31日に徹夜で1日で仕上げてたぜw
高校の時はデスマーチしても追いつかず期限漏れしまくってたが・・・orz
0741デフォルトの名無しさん
2005/05/09(月) 22:34:30俺は一切提出しなかったな。
なのに成績はいつも上位だった。
0742デフォルトの名無しさん
2005/05/10(火) 10:06:26> _vscprintfは6.0の頃には存在しなかった関数みたいですが
> エラーがでないようにするにはどうしたらいいですか?
自分で答え書いてるじゃん。
存在しないからエラー
エラーが出るのは存在しないから
エラーが出ないようにするには存在させてやればいい
もしくは存在しないものを使わなければいい。
0743デフォルトの名無しさん
2005/05/10(火) 11:06:42どうやって取得しますか?
0744743
2005/05/10(火) 11:08:48CMyView* pView = (CMyView*)AfxGetMainWnd()->GetActiveView();
0745デフォルトの名無しさん
2005/05/10(火) 11:14:00wwwwwwwwwwwwうぇwwwwおkwwwwwwwwwwwwwww
うはっwwwおkwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwww
0746サンプルエディットボックスの幅
2005/05/10(火) 11:22:46の幅をドラッグで変更するとコンボボックスの数行の選択用の
メニュー表記(国名数行)が空白になってしまいます。
レイアウト的には下記の感じです。
YEAR □ (サンプルエディットボックス)
COUNTRY □▼(コンボボックス(ドロップダウンリスト)
どなたか国名数行が空白になる原因をご教授いただけないでしょうか。
0747デフォルトの名無しさん
2005/05/10(火) 11:26:57うぇwwwっwwwっっうぇおkwwwwwっっうぇw
おkwww
っwwwwwwwwwwwwwwwwwwwww
っwwwwwwwwwwwwおkwww
0748デフォルトの名無しさん
2005/05/10(火) 11:32:21マルチすんな
0749デフォルトの名無しさん
2005/05/10(火) 12:08:19だんだん詳しく書いているようだが、
いまだにどんな症状なのかさっぱりわからない
0750サンプルエディットボックスの幅
2005/05/10(火) 14:34:13YEAR □ �@ <-->伸ばします。(VC++.net)
COUNTRY □ ▼
日本 �A保存して立ち上げて国を選ぼうとすると
アメリカ 日本、アメリカ、イギリスの表記が
イギリス 空白で消えます。
年の幅だけ伸ばして国名を消えないようにしたいのです。
0751デフォルトの名無しさん
2005/05/10(火) 14:50:26Yearを伸ばすことと、国名が出なくなることに直接の関係があるの?
0752サンプルエディットボックスの幅
2005/05/10(火) 14:55:38無いと思うのですが、、
例えば Year の 2005 の表示領域が狭いので
200とかなるので、幅を増やしたいだけなのです。
そこはうまくいくのですが、
なぜか直接関係無いはずの国名が消えます。
0753デフォルトの名無しさん
2005/05/10(火) 14:58:360754デフォルトの名無しさん
2005/05/10(火) 15:28:54マルチすんな
0755デフォルトの名無しさん
2005/05/10(火) 15:42:02おkwwwwwwwwwwwwwwwwwwwっっwwwwww
っうぇっうぇwうぇおkうはっwうぇwww
うはっwwwwwwwwwwwwっうはっwうはっうはっ
wwwwwwwうはっwwwうぇwwwwwwwwwwww
0756デフォルトの名無しさん
2005/05/10(火) 15:56:48マルチすんな
0757デフォルトの名無しさん
2005/05/10(火) 16:02:040759デフォルトの名無しさん
2005/05/10(火) 16:11:12wwwwwwwwwwwwうはっうぇwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwっっ
wwwwwwwwwwうはっうぇうぇwwwうはっwwwwww
wwwっwおkうぇwwwwwwwwwwww
w
0760デフォルトの名無しさん
2005/05/10(火) 16:14:16最高に頭悪そうな発言してください in ム板 (V)
http://pc8.2ch.net/test/read.cgi/tech/1115386557/
0761デフォルトの名無しさん
2005/05/10(火) 18:01:10これくらい自分で作ろうとも思わないのか。
int _vscprintf(const char *format, va_list argptr) {
FILE *fp = fopen("NUL", "w");
if (!fp)
return 0;
int ret = fprintf(fp, format, argptr);
fclose(fp);
return ret;
}
int _scprintf(const char *format, ...) {
va_list va;
va_start(va, format);
int ret = _vscprintf(format, va);
va_end(va);
return ret;
}
0762デフォルトの名無しさん
2005/05/10(火) 18:47:11CRTからソースもらってくるだけ
0763デフォルトの名無しさん
2005/05/10(火) 21:10:09(というか特定のスレッド)
0764デフォルトの名無しさん
2005/05/10(火) 21:23:46山田ウイルス
0765デフォルトの名無しさん
2005/05/10(火) 22:35:50上がってるスレが狙われたのかと思ったけどそうでもないし、
ウイルスを真似たコピペかも
0766デフォルトの名無しさん
2005/05/10(火) 22:42:17ほくそえんでたりするのでしょうか。
0767デフォルトの名無しさん
2005/05/10(火) 23:53:20shell32.lib(shguid.obj) : fatal error LNK1103: デバッグ情報が壊れています; モジュールを再コンパイルしてください
link.exe の実行エラー
が出てビルドに失敗するようになってしまいました。
再インストールと再アップデートもしてみましたが結果は変わりませんでした。
どう対処すれば良いのか分かりません。
どなたか教えていただけないでしょうか。
環境は VC++ 6.0 です。
0768デフォルトの名無しさん
2005/05/11(水) 01:12:3115くらいあってしっかりム板が入ってますた
さっき対策入ったから減るかモナー
0769デフォルトの名無しさん
2005/05/11(水) 06:28:32プロジェクトのフォルダの中に、壊れたshell32.libが入っていて
それを参照してしまっているのではあるまいか、とか。
0770デフォルトの名無しさん
2005/05/11(水) 09:58:09オレの行くとこのほとんどで見かけるからもっと多いかと思ったら
そんなもんなのか・・・
スレそのものは上のほうが狙われます
0771サンプルエディットボックスの幅
2005/05/11(水) 10:45:57visualC++ 6.0 で最初に制作されたものを
.netで修正したためにうまくいかなかったようです。
0772デフォルトの名無しさん
2005/05/11(水) 10:49:450773デフォルトの名無しさん
2005/05/11(水) 11:04:460774デフォルトの名無しさん
2005/05/11(水) 12:19:26どのように学べばよいのか教えてください。また良書があればそれも教えてください。
0775デフォルトの名無しさん
2005/05/11(水) 12:24:440776デフォルトの名無しさん
2005/05/11(水) 12:42:45「やってトライ!VisualC++.NETプログラミング」
http://www.amazon.co.jp/exec/obidos/ASIN/479731768X/qid=1115782837/sr=8-4/ref=sr_8_xs_ap_i4_xgl65/250-4479511-9618609
俺が読んだVC関連の書籍で、一番簡単だった
これ読んでもさっぱプーなら、無理
0777デフォルトの名無しさん
2005/05/11(水) 13:17:49URL の "qid=" 以降は削れよ。長くてウザイ。
0778デフォルトの名無しさん
2005/05/11(水) 13:29:09というと?
0779デフォルトの名無しさん
2005/05/11(水) 13:29:590780デフォルトの名無しさん
2005/05/11(水) 13:33:01ここからサンプル落とせるな
トンカチたたきゲームやったけどぜんぜん点がはいんない。
基本的にMFCでAppとWndのみだから
シルトの「標準講座MFC」みたいなシンプルなソース
0781デフォルトの名無しさん
2005/05/11(水) 13:33:05http://www.amazon.co.jp/exec/obidos/ASIN/479731768X/
0782デフォルトの名無しさん
2005/05/11(水) 13:35:36なんも表示されないんだが・・・
0783デフォルトの名無しさん
2005/05/11(水) 13:36:02「猫でもわかるプログラミング」で検索すればOK
VCの開発環境なら
プロジェクトにソースファイル(.cファイル。.hは入れても入れなくてもよい)を
追加してから、
[F7]でコンパイル、[Ctrl+F5]でコンパイルしてプログラム実行。
とりあえず、これだけで作れる。
0784デフォルトの名無しさん
2005/05/11(水) 14:37:33あなたのブラウザがおかしい。
0785デフォルトの名無しさん
2005/05/11(水) 14:44:23VC++6.0のStandard版にこの人の本が付いていたけど
はっきり言って良くない。
0786デフォルトの名無しさん
2005/05/11(水) 14:56:59その本持ってるけど、どこがよくない?
わりとまともな方だと思うが
0787デフォルトの名無しさん
2005/05/11(水) 19:03:33それが桜田クオリティ
0788767
2005/05/11(水) 19:17:52>プロジェクトのフォルダの中に、壊れたshell32.libが入っていて
>>773
>環境変ったら中間ファイル消せよ
ありがとうございます。
プロジェクトや中間ファイル等は全て消してソースコードだけからビルドしていますがリンクエラーが出ます。
また、複数のプロジェクトを扱っているのですが、全てのプロジェクトでリンクエラーが起きています。
プロジェクト個別の問題ではなさそうです。
0789デフォルトの名無しさん
2005/05/11(水) 22:11:18ブラウザに表示される文字列のみを抽出したいのですが、
そういった用途のAPIは存在するのでしょうか。
地道にタグを除去するコードを書く必要があるのでしょうか?
0790デフォルトの名無しさん
2005/05/11(水) 22:20:19cout:定義されていない識別子です
とでてきます。
iostreamはちゃんとインクルードしています。
0791デフォルトの名無しさん
2005/05/11(水) 22:20:560792デフォルトの名無しさん
2005/05/11(水) 22:28:48std::cout
0793デフォルトの名無しさん
2005/05/11(水) 22:55:54その場合、picture.bmp とか言うのがリソースとして必要だとします。
しかし、picture.bmp は Debug フォルダの中にあります。
そのため、 F5 + Ctrl で実行したら、うまく動作してくれません。
どうにかして、うまく picture.bmp を検出してくれるよう、設定を変える方法
などは存在しますか?
0794デフォルトの名無しさん
2005/05/11(水) 22:57:48なんか意味わかりにくいですが、どうにか理解できる方、よろしく
お願いします。
0795デフォルトの名無しさん
2005/05/11(水) 23:02:21作業用のディレクトリを好きなところに設定したまえ。
プロジェクトの設定は君が思っているよりたくさんの便利な設定が有るぞ。
0796790
2005/05/11(水) 23:03:56ありがとうございました。
0797デフォルトの名無しさん
2005/05/11(水) 23:05:202・VC++を再起動し、FileViewのResourceで右クリック
3・そのメニューからファイルをフォルダへ追加を選択
4・Debugディレクトリにあるpicture.bmpを選択して追加
これでプロジェクトに追加されたpicture.bmpはデフォルトのパスが
Debugディレクトリを指すようになる
0798デフォルトの名無しさん
2005/05/11(水) 23:14:51Q
普通にexeファイルをダブルクリックで実行すると正しくディレクトリ名を
取得できるのですが、他ファイルをドラッグ&ドロップなどで放り込んだり
アプリケーションの関連付けを行って開こうとすると
カレントディレクトリがなぜか C:\ になってしまいます。
exeファイルのあるフォルダをカレントディレクトリにするには
どうしたらよいでしょうか?
A
GetModuleFileName( )で実行ファイルのフルパスが獲得できます。
ファイル名だけ削除すればパスが得られます。
SetCurrentDirectory( ) でカレントディレクトリを設定できます。
0799デフォルトの名無しさん
2005/05/11(水) 23:33:35>>798 さん、すみません、まだVCを始めたばかりで、その辺のことはよくわかりません;;
>>795 さんも、レスありがとうございました。色々設定があるんですね。難しそうです。
皆様、初歩的な質問だったのかもしれませんが、重ね重ね、ありがとうございました。
0800デフォルトの名無しさん
2005/05/12(木) 02:09:23謝礼は毎日メッセサインインしてるヒキの労力でorz
0801デフォルトの名無しさん
2005/05/12(木) 05:43:210802デフォルトの名無しさん
2005/05/12(木) 06:45:23Service Pack 6を当てたんですが、確認の為ヘルプからバージョン調べても
Service Pack 6当てる前と同じでSP6とか書いてないんです。
こういうもんなんですかね。何回Service Pack 6を入れなおしても変わらないので…
0803デフォルトの名無しさん
2005/05/12(木) 07:17:52そういうものです。
インストールされてるDLLのバージョンを見て判断するしかない。
判断するアプリを開発してみたらいい。
あとは、うちでは動かないけどこれを使うとか。
http://61.195.253.97/cgi-bin/main.cgi?fileopen,madonomoto_01_00,madonomoto\WIN\vc6sp
0806デフォルトの名無しさん
2005/05/12(木) 09:39:53VBにはとてもかないませんわ。
0807デフォルトの名無しさん
2005/05/12(木) 09:44:59ってこれはIDEだからか
0808デフォルトの名無しさん
2005/05/12(木) 10:04:48もっと削れるよ
詳しくはGoogle Hackを買おう(笑)
0809デフォルトの名無しさん
2005/05/12(木) 10:06:08要するにoだけで十分なんだ
0810デフォルトの名無しさん
2005/05/12(木) 13:57:470811デフォルトの名無しさん
2005/05/12(木) 14:09:00それは有名
0812デフォルトの名無しさん
2005/05/12(木) 18:21:020813デフォルトの名無しさん
2005/05/12(木) 18:24:28クラスを返す関数だと、無理なのでしょうか?
error C2440: '=' : 'CString (__thiscall CGIEView::* )(int)' から 'CString (__cdecl *)(int)' に変換できません。
Cxxx::CString unko(int hoge){
}
CString (*p)(int);
p = unko; ←ここでエラー
0814デフォルトの名無しさん
2005/05/12(木) 18:25:13コピーされたときのチェック用じゃね?
0815デフォルトの名無しさん
2005/05/12(木) 18:34:41コンパイラが言うように、
'CString (*p)(int)'から
'CString (CGIEView::*p )(int)'
に変更しとけ。
0817デフォルトの名無しさん
2005/05/12(木) 19:04:120818デフォルトの名無しさん
2005/05/12(木) 19:12:56VC++のVER6.0で、WIN32アプリケーションを
作成しております。(XP−PRO sp2です)
日時指定のコントロールを使用しているのですが、XPでは動くのに
2000やMEではコントロールを置いているダイアログが開かず、
困っております。どなたか、ヒントをお願い致します。
0819デフォルトの名無しさん
2005/05/12(木) 19:15:04デバッグビルドでやってごらん
きっとエラーメッセージを出すよ
0821デフォルトの名無しさん
2005/05/12(木) 19:41:21使っているとか。必要なdllがインストールされてないとか。
0822デフォルトの名無しさん
2005/05/12(木) 19:44:57コンストラクタ内で
vector<vector<int> > Array(100, vector<int>(100));
Array[10][10] = 100;
とすれば普通に使えるのですが
クラスのメンバ変数として
class Hoge {
vector<vector<int> > Array(100, vector<int>(100));
};
とすると
error C2059: 構文エラー : '定数'
error C2143: 構文エラー : ')' が ';' の前にありません。
error C2059: 構文エラー : ')'
とエラーが出てしまいます。
いったい何がいけないのでしょうか・・・?
VC.net Standard です。
0823デフォルトの名無しさん
2005/05/12(木) 20:22:46あるプロジェクトで作ったアプリがあります。win32です。
その中身を、DirectX用に作ったプロジェクトの中に組み込みたいのですが、
どうやればいいんでしょうか?
とりあえず全部既存項目の追加でいれてみたんですけど…
0824デフォルトの名無しさん
2005/05/12(木) 20:35:22なんかすげーなw
まるでカレーでもつくっているかのようだ。
0825デフォルトの名無しさん
2005/05/12(木) 20:40:241から書き直さないとダメなんでしょうか。
0826デフォルトの名無しさん
2005/05/12(木) 20:43:56class Hoge {
Hoge() : Array(100, vector<int>(100))
{}
vector<vector<int> > Array;
};
0827デフォルトの名無しさん
2005/05/12(木) 20:55:330828デフォルトの名無しさん
2005/05/12(木) 20:55:52floatからdoubleにキャストするには何を使えばいいんですか?
逆はどうですか?
0829デフォルトの名無しさん
2005/05/12(木) 21:05:570830813
2005/05/12(木) 21:32:52p(1); エラーになります・・・orz
どうやって関数呼び出せば・・・
× *p(1);
× (*p)(1);
× Cxxx::*p(1);
おたすけてくださいまし・・・
0831813
2005/05/12(木) 21:46:44出来ました
(this->*p)(1);
C++の勉強不足でした。出直してきますm(_ _)m
0832デフォルトの名無しさん
2005/05/12(木) 22:02:28static_castね。
float→doubleはキャスト演算子を使わなくても変換してくれると思うけど。
Visual C++以外でも通用するC++の話はC++スレで。
0833822
2005/05/13(金) 00:27:46なるほどそのように書くわけですか。
どうもありがとうございました。
次からC++の話題は該当スレでします。
>>822はgccでも蹴られたし・・・。
0834デフォルトの名無しさん
2005/05/13(金) 00:28:27なんかDebugビルドでrealloc(NULL, …); やると
たまに他の領域壊すんですけど、なにこれ?!
Debugビルドで症状再現率 10%
Releaseビルドだと、症状再現率 0%
malloc(); に書き換えたら、ピタっと治まった
あたいの時間を返せー!!!!
0835デフォルトの名無しさん
2005/05/13(金) 00:50:2499.99999999%君のプログラムが悪い。
Releaseではたまたま症状がでないだけで、どっかでバッファオーバーランでもしてるんだろ。
0836デフォルトの名無しさん
2005/05/13(金) 01:43:26スレ違いとか言われてキレるのが目に浮かぶ
0837デフォルトの名無しさん
2005/05/13(金) 01:48:15最初はDebugビルドがいいですか?
Debugビルドでデバッグして問題なければ、
Releaseビルドに切り替えたとき、
方向としては更に安定すると思っていいのですか?
0838デフォルトの名無しさん
2005/05/13(金) 01:48:55いいえ。
0839デフォルトの名無しさん
2005/05/13(金) 01:50:51よそにもってってテストするときにRelease
直すときはまたDebug
最後は当然Release
でもその後で修正が入ってDebug
0840デフォルトの名無しさん
2005/05/13(金) 01:52:14つーかステップ実行でおっかけたりメモリやメンバの中を覗いたりしないのかよ
0841デフォルトの名無しさん
2005/05/13(金) 02:37:21ストーカーで手鏡をして逮捕される田代覗き魔の負け組み
0842デフォルトの名無しさん
2005/05/13(金) 02:44:460843デフォルトの名無しさん
2005/05/13(金) 05:21:20Java みたいに出てくれると楽なのですが。。。
0844デフォルトの名無しさん
2005/05/13(金) 05:56:110845デフォルトの名無しさん
2005/05/13(金) 08:25:44それでDWORDにすると、上手くいく。
いつもこれ。わからん
0846デフォルトの名無しさん
2005/05/13(金) 08:47:590847デフォルトの名無しさん
2005/05/13(金) 09:01:14最低でもC/C++で実用プログラム作れるぐらいじゃないと
0848デフォルトの名無しさん
2005/05/13(金) 09:21:160849デフォルトの名無しさん
2005/05/13(金) 10:12:12ダイアログボックスに、エディットボックスを作って、その入力内容に
よって、switch文かif文で処理を変えようとしたのですが、うまくいきません。
文字を読み込んでいるかの確認のため、メッセージボックスで表示させてみたのですが、
これは成功してます。
おそらく、switch文、もしくはif文の後が悪いと思うのですが、何度やってもうまくいきません。
教えてください。
0850デフォルトの名無しさん
2005/05/13(金) 10:14:41まずは、どういうコードを書いたのか想像しろと?
0851デフォルトの名無しさん
2005/05/13(金) 10:15:150852デフォルトの名無しさん
2005/05/13(金) 10:23:45デバッガ使えないなら通りそうな所でメッセージボックスだしてみる。
0853849
2005/05/13(金) 10:38:48GetDlgItemText(hDlg,IDC_EDIT1,text,100);といった感じで、文字を読み込んで、
そのあと確認のためMessageBox(hWnd,text,"確認",MB_OK);で出力させてます。
その時はちゃんとエディットボックスの入力と同じ表示なのですが・・。
それから、条件判断させようとしても、きちんと指定された処理へいきません。
説明が下手なので申し訳ないのですが、理解してもらえますか?
0854デフォルトの名無しさん
2005/05/13(金) 10:44:53CStringは使ってないんだな?
使ったほうがいいと思うが、
char* の内容を比較しようと思ったら
単に swich case や、 == 使うだけじゃ駄目だぞ
0855デフォルトの名無しさん
2005/05/13(金) 10:47:16ここにコピーしなさいよ。文章だけで説明されてもわけわからんし。
それか実際の例を出さずにこういったものを用意してこういった事を
実現したいってのを文章にして書くか。
0856849
2005/05/13(金) 11:01:55Ret = MessageBox(hWnd,text,"警告",MB_OK);
if(text == "aaa"){
Ret = MessageBox(hWnd,"同じ","警告",MB_OK);
}else{
Ret = MessageBox(hWnd,"保存","確認",MB_OK);
}
理想としては、エディットボックスを二つにして、両方の入力を比較したいのです。
>>854
CStringは知りませんでした。調べてみます。
0857デフォルトの名無しさん
2005/05/13(金) 11:10:23これは、textのアドレスと"aaa"の格納されているアドレスを比較している
違うのはあたりまえ。
if (strcmp(text, "aaa") == 0){
こうすればいい。CStringなら == が使える
0858デフォルトの名無しさん
2005/05/13(金) 11:13:04パチパチ
0859デフォルトの名無しさん
2005/05/13(金) 11:16:380860デフォルトの名無しさん
2005/05/13(金) 11:18:020861デフォルトの名無しさん
2005/05/13(金) 11:20:400862849
2005/05/13(金) 11:25:26ありがとうございます。動きました。
出来れば、CStringを使った場合の記述を教えてもらいたいです。
それと、もうひとつIDC_EDIT2というIDのエディットボックスと比較したい
場合はどうすれば良いでしょうか?
0863デフォルトの名無しさん
2005/05/13(金) 11:26:24ですが、何よ
0864デフォルトの名無しさん
2005/05/13(金) 11:30:13フレームワーク使ってるかどうかでだいぶ変わるが、、、
一番単純なのは CString の変数に = でchar* を代入して
==で比較。
2つめのコントロールも同じように取得すればいいのでは
0865デフォルトの名無しさん
2005/05/13(金) 12:07:31そのIDは、IDC_EDIT1,IDC_EDIT2,IDC_EDIT3,...ってしたいのですが、
IDの定義値によっては、IDC_EDIT3が他のIDと重なって定義できなかったりして、
なんかむずむずするときがあります。
こんなとき、うまく順番にID割り振る方法ってあるのでしょうか。
0866デフォルトの名無しさん
2005/05/13(金) 12:14:01for(DWORD i=0; i<3; i++)
{
DrawEditControl_tekitou( id[i] );
}
みたいな
0867デフォルトの名無しさん
2005/05/13(金) 12:17:28static void F( char* S)
{
}
int main( )
{
F(SS);
}
ってやると、
error C2664: 'F' : 1 番目の引数を 'const char [4]' から 'char *' に変換できません。
とエラーメッセージが出ます。型チェックが厳しいのはわかりますが、
致命的エラーになるんですよね。
こういう場合は、その都度いちいちキャストしないといけないのでしょうか。
文字列をconstで使う場面って多いと思うのですが。
0868デフォルトの名無しさん
2005/05/13(金) 12:18:20つΨ 孫の手
0869デフォルトの名無しさん
2005/05/13(金) 12:22:050870デフォルトの名無しさん
2005/05/13(金) 12:22:52F()の引数をconstにすべきでは
0871デフォルトの名無しさん
2005/05/13(金) 12:28:57ブレークポイントでコールスタックを見るとちゃんと関数名が見れるのですが;
異常終了したときには関数名がでないんです。。そっちの方がみたいのに。。
0872デフォルトの名無しさん
2005/05/13(金) 12:32:31異常終了ってダイアログでない?
そのとき、[再試行]選べば見られるよ
0873デフォルトの名無しさん
2005/05/13(金) 12:34:51他の奴もデバッガを使いこなせないと信じている低脳厨
0874デフォルトの名無しさん
2005/05/13(金) 12:47:00と、いうことにしたいのですね : - P
0875デフォルトの名無しさん
2005/05/13(金) 12:57:280876デフォルトの名無しさん
2005/05/13(金) 13:32:34コールスタックに アドレスが表示されて、関数名が表示されないんです。
0877デフォルトの名無しさん
2005/05/13(金) 13:56:05Debugビルドで?
ReleaseビルドのEXEやDLLはシンボル無ければ表示できないよ
0878デフォルトの名無しさん
2005/05/13(金) 14:05:480879デフォルトの名無しさん
2005/05/13(金) 14:06:390880デフォルトの名無しさん
2005/05/13(金) 14:16:20がんばれ
0881ソース”管理”プロバイダ
2005/05/13(金) 14:16:33プロジェクト MPList.vcproj はソース管理下に存在しているようですが、
ソース管理プロバイダが、このコンピュータにインストールされていません。
このプロジェクトのソース管理の統合は無効になります。
とでてビルドしてもエラーになりますが、どのような対処が
必要なのでしょうか?
0882デフォルトの名無しさん
2005/05/13(金) 14:17:500883デフォルトの名無しさん
2005/05/13(金) 14:28:02VC++でコンパイルをしたところ、以下のようなメッセーが出てきて、リビルドできませんでした。
d:\documents and settings\endo\my documents\どきゅめんと\vcpp_dev\klib\KLib.h(17) : fatal error C1083: include ファイルを開けません。'KLibIncludes.h': No such file or directory
d:\documents and settings\endo\my documents\どきゅめんと\vcpp_dev\source\prsearch\stdafx.h(8) : fatal error C1083: include ファイルを開けません。'klib.h': No such file or directory
「klib.h」も「KLibIncludes.h」もプロジェクトの中になります。なぜ、ファイルを開けないのでしょうか?
ご教授願います。
よろしくお願いします。
0884デフォルトの名無しさん
2005/05/13(金) 14:30:12Debug Build です。
ブレークポイントを設定した時にはちゃんとでるのですが。。。
異常終了したときには、アドレスだけなんです。。。
一般的には異常終了でも関数のトレースがでるんでしょうか?
(VS6.0 Sp5)
0885デフォルトの名無しさん
2005/05/13(金) 14:43:52CFormViewを使ったときに
ダイアログベースでOnInitDialogで初期化するように
初期化する処理はどこで行えばよいのですか?
0886デフォルトの名無しさん
2005/05/13(金) 14:47:22ウィンドウが必要ならOnCreate()
0887デフォルトの名無しさん
2005/05/13(金) 15:00:43DLLなら.pdbファイルも同じとこに置けばいいし
そうでないなら、、、実行はF5でやってる?
0888デフォルトの名無しさん
2005/05/13(金) 15:05:51CFormViewか、、ドキュメントによるなら
OnInitialUpdate()がいいのかな
0889デフォルトの名無しさん
2005/05/13(金) 15:11:14もしデバッガを入れてない環境なら、Dr.ワトソンを使うべし。
シンボルを入れてなくても、mapファイルとリスティングファイルからソースの該当箇所を割り出し可能。
デフォルトでは、リリースビルドでそれらは生成されないので、必ず設定変更し、バージョン毎に保存・管理すべし。
試しに意図的にNULLポインタの指す先をアクセスして、
予行演習しておいたほうがいいですよ。
プロセスが異常終了するのではなく、例外がthrowされた時に・・・ということであれば、
PlatformSDKのサンプルのDr.ワトソンのソースを参考に、スタックウォークすればOK。
0890885
2005/05/13(金) 15:12:17起動時にエディットボックスに自動的にパスを入力する処理をするのです
ダイアログベースのときはOnInitDialogでできたのですが
今回の場合は>>886のおっしゃるCMainFrameのOnCreateにするということですか?
それとも>>888のC・・・ViewのOnInitUpdateですか?
0891デフォルトの名無しさん
2005/05/13(金) 15:17:05初心者のうちは大人しく、MFCでDDXを使ったほうがいいですよ。
GetDlgItemTextとか使わなくたって、
自動的にメンバ変数のCStringに転送してくれますから。
0892デフォルトの名無しさん
2005/05/13(金) 15:20:30異常終了するのは、どういうタイミングですか?
また、異常終了した時のコールスタックの内容は?
その時のデバッガの画面のキャプチャを出したほうが、話が早いよ。
0893デフォルトの名無しさん
2005/05/13(金) 15:27:43最初に一回だけならOnCreateでいい
OnInitialUpdateならファイルメニューの
新規作成や開くを選ぶたびに呼ばれる
0894ソース”管理”プロバイダ
2005/05/13(金) 15:31:05なぜかくりかえしビルドしてたら
エラーがなくなりました。
0895893
2005/05/13(金) 15:32:41まあCDocumentが欲しけりゃOnInitalUpdate
0896885
2005/05/13(金) 15:58:45OnInitalUpdateに記述して無事できました
ありがとうございます
C・・・Docクラスに何かしら記述しないといけないのかなぁとか考えてましたが
Viewクラスだけで事足りるのですね
0897884
2005/05/13(金) 16:59:04ありがとうございます。原因がわかりました。
PageSetupDlg 内で飛んでいました。(そのためコールスタックがでていないようです。)
PageSetupDlg で飛ぶ原因はわからないのですが。。とりあえずインク節約のソフトを抜くと動きました(笑)
他のソフトはインク節約のソフトが入っていても動くので私の使い方がマズイのだとは思います。
0898デフォルトの名無しさん
2005/05/13(金) 17:08:140899デフォルトの名無しさん
2005/05/13(金) 18:18:53「サポートされてない操作をしようとした」とかおかしなことになってはまる。
0900質問してもいいですか
2005/05/13(金) 20:12:24とssに入っている時、ssから「A」「あ」「B」と順番に取り出すには、どうしたらよいですか?
仮にss.Midでやると、途中に2バイト文字があるので、どこに2バイト文字があるのか
把握してないと上手く取り出せません
やりたい事は、CStringのssを関数に渡し、渡された関数内で、1文字単位に分解したいのです
どうか、お知恵をお貸し下さい
0901デフォルトの名無しさん
2005/05/13(金) 20:36:17CStringT<wchar_t>使え。
0902デフォルトの名無しさん
2005/05/13(金) 20:46:030903デフォルトの名無しさん
2005/05/13(金) 21:01:20ありがとうございます
0904デフォルトの名無しさん
2005/05/13(金) 23:16:37Windows XP SP2 の上で VC++ 6.0 で開発しています。
言語は C++ です。
Windows Service から DLL を LoadLibrary して使用しています。
DLL の中にある class の static メンバ変数を使うと、DLL を FreeLibrary すれば
変数領域が解放されてしまいます(という実験結果でした)。
DLL から Serive 側のメモリ管理領域に static な変数領域(FreeLibrary をしても
消えない)を確保するにはどうしたらいいですか?
0905デフォルトの名無しさん
2005/05/13(金) 23:18:280906デフォルトの名無しさん
2005/05/13(金) 23:20:320907デフォルトの名無しさん
2005/05/13(金) 23:30:13FreeLibraryするのが間違ってるんじゃないのか?
0908904
2005/05/13(金) 23:41:07>FreeLibraryしたあとにそのDLLにあるクラスのインスタンスを参照するのか?
そんなことはしません。
LoadLibrary される度に DLL が参照できる共通領域が欲しいのです。
>>905
自分は数ヶ月しかコード書いてない初心者ですが、これは初心者領域を越える質問なので
すか?
>>906
本当ですか?
0909デフォルトの名無しさん
2005/05/13(金) 23:41:370910デフォルトの名無しさん
2005/05/13(金) 23:46:34それが嫌なら、自分で何か別な方法を考える。
それも嫌なら、やめる。
0911デフォルトの名無しさん
2005/05/13(金) 23:49:36ファイルに保存して、核DLLから参照したら?
0912904
2005/05/14(土) 00:03:51なるほど! Service 側に static な領域を確保して、そこへ FreeLibrary される前に
DLL が保存したい内容を確保すればいいのですね?
ありがとうございました。
>>910
自分で思いつかないから質問しました。
>>911
ありがとうございます。
いや保存したいないようがクラスなので。クラスもファイルに保存できるのですか?
0913デフォルトの名無しさん
2005/05/14(土) 00:08:48LoadLibraryなんて使わずにインポートライブラリ使うだろう?
そもそもなんでFreeLibraryする必要があるの?そういう情報を出して質問しないと答え
様がないな。
どういうサービスなのか、どうして毎回Loadする必要があるのか、とかを書いて質問すると
もうちょっとましな回答ができると思うよ。
釣りだったらはずいなw
0914デフォルトの名無しさん
2005/05/14(土) 01:39:51アイコンを描画したいと考えています。
グループボックスのハンドルをもとに
デバイスコンテキストを取得して、アイコンを描画しました。
アイコンの描画はできたのですが、なぜかグループボックスの枠が消えてしまいました。
原因はなんなのでしょうか?
hdc= BeginPaint (hGroupboxWnd, &ps);
DrawIcon(hdc, 0, 0, hicon);
EndPaint(hWnd, &ps);
SDKで組んでます。
0915デフォルトの名無しさん
2005/05/14(土) 01:41:15正しくは以下です。
hdc= BeginPaint (hGroupboxWnd, &ps);
DrawIcon(hdc, 0, 0, hicon);
EndPaint((hGroupboxWnd, , &ps);
0916デフォルトの名無しさん
2005/05/14(土) 02:10:20ピクチャーコントロールを配置して
そこに描画じゃアカンの?
0917デフォルトの名無しさん
2005/05/14(土) 02:58:220919デフォルトの名無しさん
2005/05/14(土) 08:39:53かぶるかもとか知恵が回らないのだろうか?
0920デフォルトの名無しさん
2005/05/14(土) 08:41:130921904
2005/05/14(土) 09:50:21初心者なんですが、会社に入ってずっと先輩たちのソースコード(本人行方不明)を
メンテナンスさせられてるんです。NT Service については彼らの遺産があるので
必死で Win32 や C++ を勉強しながらここまで入社 2ヶ月、必死なんです。
サービスは HTTP? のサーバーで、有名な apache とかじゃないです。オリジナル。
ドキュメントを読むと、HTTP でつながったら CGI の DLL をロードして処理して
フリーする感じです。各 DLL で行なったことの後始末を HTTP が切れたときに
全部について行ないかったんで、共有領域に書いておいて一気に処理したかったの
でした。
>>909 さんの説明でなんとかなりそうです。ありがとうございました。
では、今日も出勤です。
0922デフォルトの名無しさん
2005/05/14(土) 11:25:00給料もらってやってる仕事を無料奉仕で教えてやる馬鹿がいるか?
0923デフォルトの名無しさん
2005/05/14(土) 11:29:49他のとこに転職しとけ。で、新しい職場でももがき苦しめ。
0924デフォルトの名無しさん
2005/05/14(土) 11:30:050925デフォルトの名無しさん
2005/05/14(土) 11:47:242桁の数がいくつあるかを数えて、その個数を表示する。
こんな問題があったのですが、さっぱり分かりません。
どなたか実際にプログラムを書いて教えてもらえませんか?
0926デフォルトの名無しさん
2005/05/14(土) 11:48:35スレ違い。宿題スレへ。
0927925
2005/05/14(土) 11:53:220928デフォルトの名無しさん
2005/05/14(土) 12:07:500929デフォルトの名無しさん
2005/05/14(土) 12:25:57他人の俺らには関係ないじゃん。
0930デフォルトの名無しさん
2005/05/14(土) 12:47:460931デフォルトの名無しさん
2005/05/14(土) 13:10:110932デフォルトの名無しさん
2005/05/14(土) 13:47:140933デフォルトの名無しさん
2005/05/14(土) 14:48:070934デフォルトの名無しさん
2005/05/14(土) 14:50:450935デフォルトの名無しさん
2005/05/14(土) 14:53:52MSDNのヘルプの記事にはWindows CEと書かれたものが多く含まれています。
時に、CEの記事しかないこともありますが、これはWinXPのような普通のOSでも
同じと考えていいのでしょうか。
なぜCEばかりあるのか不思議に思ってます。
0936デフォルトの名無しさん
2005/05/14(土) 14:54:270937デフォルトの名無しさん
2005/05/14(土) 15:07:18int main()
{
printf("hello world\n");
}
たったこれだけの事をやりたくても
プリコンパイルヘッダを使わないと行けないんだけど
プリコンパイルヘッダを使わなくても済む方法あります?
そのコードをそのまま別の環境(たとえばLinux)に持ってってもコンパイルできるようにしたい
(ただのコマンドラインプログラムなので環境に依存しないものを作りたい)
0938デフォルトの名無しさん
2005/05/14(土) 15:12:11コンソールでコンパイルすれば?
0939デフォルトの名無しさん
2005/05/14(土) 15:13:180941デフォルトの名無しさん
2005/05/14(土) 15:33:19同じ設定が7.1にもありました。
新規プロジェクトを作る時にはデフォルトでプリコンパイルヘッダを使用する
になっちゃってるけど、これを使用しないに変更して
StdAfx.hと.cppを削除してコンパイル通りました。
0942デフォルトの名無しさん
2005/05/14(土) 15:41:180943デフォルトの名無しさん
2005/05/14(土) 16:31:41レジストリにプロジェクト単位でキーができてて
あとから見るとものすごいことになってる。
0944デフォルトの名無しさん
2005/05/14(土) 16:58:070945デフォルトの名無しさん
2005/05/14(土) 17:08:550946デフォルトの名無しさん
2005/05/14(土) 17:17:43バージョンダウンしてプロジェクトの保存とかはできないのですか?
最初から前のバージョンのプロジェクトを作成してもいいのですが。
0947デフォルトの名無しさん
2005/05/14(土) 17:59:02.sln/.vcproj を .dsw/.dsp に変換するツールがあるよ。
http://www.google.co.jp/search?q=sln+dsw+converter
http://www.arstdesign.com/articles/prjconverter.html
0948デフォルトの名無しさん
2005/05/14(土) 19:39:03なぜかうまくいきません
C=AXB を計算するとき
引数としてA、Bそれぞれの配列のポインタを渡して
Cの配列のポインタをreturnするというものにしてみたんですが
はじめの配列は4*4だったのに返ってくるものはなぜか
16*1のサイズになってしまいます。下に書いたプログラムは乗算の
計算の部分を省いて書いてみたやつなんですがやはり同じ結果に
なってしまいます。どこがまずいですか?また、どうすればいいですか?
float *jouzan(float a[4][4],float b[4][4]){
float c[4][4];
return c;
}
void main(void){
float a[4][4],b[4][4],c[4][4];
c=jouzan(a,b);
}
0949948
2005/05/14(土) 19:40:54Xは行列の乗算の時につかうクロスです。
わかりにくくてすいません。
0950デフォルトの名無しさん
2005/05/14(土) 19:58:33それコンパイル通らないだろ。
0951デフォルトの名無しさん
2005/05/14(土) 20:08:50#include <stdio.h>
void jouzan(float a[4][4], float b[4][4], float c[4][4])
{
// 行列演算の結果をcへ代入
}
void main(void)
{
float a[4][4], b[4][4], c[4][4];
jouzan(a, b, c);
}
0952948
2005/05/14(土) 21:30:07関数の中で計算結果を引数に代入ってどういう風にすればいいんですか?
たとえば普通にc[1][1]=2;とかやってもだめですよね?
0953デフォルトの名無しさん
2005/05/14(土) 21:33:390954948
2005/05/14(土) 21:42:59ありがとうございました
0955デフォルトの名無しさん
2005/05/14(土) 22:45:03CEにしかないAPIはWin32では使えないよ。
0956948
2005/05/15(日) 00:15:39配列の中身を全部
同じ型の別の変数に代入するにはどうするにはどうしたらいいですか?
for文使っても出来ますけどそれだとながくなっちゃうんで
もっと短く書きたいんですけどぉ。
0957デフォルトの名無しさん
2005/05/15(日) 00:20:30構造体でくるんで直接代入とか。
0958デフォルトの名無しさん
2005/05/15(日) 00:22:12自分で関数を作るとあら不思議。
一行ですむぞ。
0959デフォルトの名無しさん
2005/05/15(日) 00:43:060960デフォルトの名無しさん
2005/05/15(日) 02:02:160961デフォルトの名無しさん
2005/05/15(日) 10:03:01教えて下さい
0963デフォルトの名無しさん
2005/05/15(日) 10:42:02「例外処理 (初回) は〜〜」ってのを表示しなくすることは出来ますか?
出来れば特定の例外だけ、とか…
ループの中で使ったら凄いことに。
0964デフォルトの名無しさん
2005/05/15(日) 14:29:48追加された順にヘッダーにもプロトタイプ宣言されて行くのなんとかなりませんか?
ぐちゃぐちゃしてきて、気持ち悪くなりました。
せめて、関数、変数の区分で整理して貰いたいんですけど・・・
0965デフォルトの名無しさん
2005/05/15(日) 14:39:55自分で整理する。あ、VC6だと認識できなくなるかな? その場合はVC7に移行しよう。
0966デフォルトの名無しさん
2005/05/15(日) 14:59:49つ[ケロリン]
0967デフォルトの名無しさん
2005/05/15(日) 15:42:460968デフォルトの名無しさん
2005/05/15(日) 15:49:13C言語のソフトを買いにいきました。店員さんに尋ねたところVisualC++.netを薦められました。
C言語とC++言語の違いを簡単に説明していただき、このソフトはどちらの言語も使えると言われたので
C言語の参考書と一緒に購入しました。
使い始めたのですが、プロジェクトの種類など、最初に選択する項目が沢山あってよくわからなかったので
付属のマニュアルどおりに
win32プロジェクト>アプリケーションの設定>コンソールアプリケーションにチェック
>空のプロジェクトにチェック>新しい項目を追加>C++ファイル
で画面にHell,Worldと表示するプログラムを作りました。
これを参考書の通りにC言語の形式で書き直したのですが、問題なく実行できました。
次に、int a に数字を代入してPrintfで画面に表示するプログラムを作成したのですが
表示されるaの値が何を代入しても12477・・・ととても大きな値になってしまいます。
内容は以下の通りです。
#include <stdio.h>
int main()
{
int a;
a=10;
printf("aの値は%dです。\n",&a);
return 0;
}
どなたか助言おねがいします。
0969デフォルトの名無しさん
2005/05/15(日) 15:52:320970デフォルトの名無しさん
2005/05/15(日) 15:54:360971デフォルトの名無しさん
2005/05/15(日) 15:56:08それはたぶんC言語だから
Cのスレへどうぞ
0972デフォルトの名無しさん
2005/05/15(日) 15:59:10http://pc8.2ch.net/test/read.cgi/tech/1113102515/
【初心者歓迎】C/C++室 Ver.17【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1115958601/
C言語ならママに聞け
http://pc8.2ch.net/test/read.cgi/tech/1087648569/
C言語のポインタってなんですか?
http://pc8.2ch.net/test/read.cgi/tech/1056082808/
C/C++の宿題を片付けます 43代目
http://pc8.2ch.net/test/read.cgi/tech/1115794784/
0973デフォルトの名無しさん
2005/05/15(日) 16:05:03http://pc8.2ch.net/test/read.cgi/tech/1113408957/
C統合・質問スレッド
http://pc8.2ch.net/test/read.cgi/tech/1068359871/
C言語の第一歩
http://pc8.2ch.net/test/read.cgi/tech/1031374980/
C言語教室
http://pc8.2ch.net/test/read.cgi/tech/1099552998/
C++は難しすぎ 難易度:2
http://pc8.2ch.net/test/read.cgi/tech/1071697977/
C言語のすばらしい入門書
http://pc8.2ch.net/test/read.cgi/tech/1114004586/
【独習C】本を読んで質問【独習C】
http://pc8.2ch.net/test/read.cgi/tech/1112760409/
Cだけど何か質問ある?
http://pc8.2ch.net/test/read.cgi/tech/1103977418/
0974デフォルトの名無しさん
2005/05/15(日) 16:28:53無言の圧力
0975デフォルトの名無しさん
2005/05/15(日) 16:54:52丁寧な前置きになんかワロス
0976デフォルトの名無しさん
2005/05/15(日) 19:06:56OnCreateやOnShowWindowが妥当だと思ったのですが、これらでは描画されません。
OnSizeで描画されるので描画部分がおかしいということはないとおもうのですが、どうしたらいいのでしょう
0977デフォルトの名無しさん
2005/05/15(日) 19:22:10DrawItem(LPDRAWITEMSTRUCT lpdis);
0978デフォルトの名無しさん
2005/05/15(日) 20:24:01一応釣られると。&a→aに直すだけで良いよ。
&aにすると10を格納した変数aのアドレスが表示されるから。
0979976
2005/05/15(日) 20:48:04ダイアログボックス内のピクチャビューに描画するのですが、これはオーナードローになるのでしょうか?
(コントロール自体はリソースエディタで貼り付けているのでオーナードローではないような気もするのですが・・・)
0980デフォルトの名無しさん
2005/05/15(日) 20:52:23互いのサイズを変えられるようにするにはどうしたらいいのですか?
0981デフォルトの名無しさん
2005/05/15(日) 21:14:36CSplitterWnd を使う
0982デフォルトの名無しさん
2005/05/15(日) 21:17:06ピクチャービューってSTATICコントロールのやつ?
タイプをオーナードローにすれば親から描くことになるよ
サブクラス化して自分で描かせてもいいけど
0983976
2005/05/15(日) 21:54:21そう、それです。
タイプでオーナードローはチェックしていません。
コードディングでグラデーションをつけているのですが、これがOnShowWindowなどでは動作しないのです。
0984デフォルトの名無しさん
2005/05/15(日) 22:08:21キーボードをhookしてます。
hhook= SetWindowsHookEx (WH_KEYBOARD, (HOOKPROC) cck_hook, hinst, 0);
例えば、キーが押されたときに
240のキーだったら、17のキーにする、といったことが
やりたいのですが、このプログラムだと
(1)で行った変更が反映されません。
どのようにすればよいでしょうか?
LRESULT CALLBACK cck_hook (int msg, WPARAM wp, LPARAM lp)
{
if (wp == 240)
{
wp = 17;// (1)
}
return CallNextHookEx (hhook, msg, wp, lp);
}
0985デフォルトの名無しさん
2005/05/15(日) 22:18:10そろそろ次スレ↓
0986デフォルトの名無しさん
2005/05/15(日) 22:24:06CMainFrame::OnCreateClientで2*2の分割ウィンドウを作っていますが(ウィザードが自動生成)、
CMainFrame::OnShowWindowでサイズを変更しようとしても受付けてもらえません。
(↓のコードで設定をしてそれを読み出していますが、最小値しか反映されません)
このコードで問題ないとおもうのですが何がいけないのでしょうか?
void CMainFrame::OnShowWindow(BOOL bShow, UINT nStatus)
{
CFrameWnd::OnShowWindow(bShow, nStatus);
CRect wndRect;
int a, b;
GetClientRect( &wndRect);
m_wndSplitter.SetRowInfo( 0, 100, 100);
m_wndSplitter.SetRowInfo( 1, 100, 25);
m_wndSplitter.SetColumnInfo( 0, 100, 100);
m_wndSplitter.SetColumnInfo( 1, 100, 100);
m_wndSplitter.GetRowInfo( 0, a, b);
m_wndSplitter.GetRowInfo( 1, a, b);
m_wndSplitter.GetColumnInfo( 0, a, b);
m_wndSplitter.GetColumnInfo( 1, a, b);
m_wndSplitter.RecalcLayout();
}
0987デフォルトの名無しさん
2005/05/15(日) 22:32:41任意のサイズに修正
余計な所をいじる必用はない
0988デフォルトの名無しさん
2005/05/15(日) 23:25:26NTならWH_KEYBOARD_LLでうまくいった気がする
DirectXには効かないが
0989デフォルトの名無しさん
2005/05/16(月) 01:30:29レス、ありがとうございました。
やってみます。
0990デフォルトの名無しさん
2005/05/16(月) 01:35:08体系的に学べて良質なWebサイトがありましたら誘ってください
0991デフォルトの名無しさん
2005/05/16(月) 02:20:310992デフォルトの名無しさん
2005/05/16(月) 05:34:27コードディング
コードディング
0993デフォルトの名無しさん
2005/05/16(月) 05:49:23サブクラス化したってこと?
それならWM_PAINTでいいよ
0994デフォルトの名無しさん
2005/05/16(月) 10:46:21VC++6.0じゃ表示できないのですか?
.NETでないとだめ?
0995デフォルトの名無しさん
2005/05/16(月) 11:09:550996デフォルトの名無しさん
2005/05/16(月) 11:22:04立てました
http://pc8.2ch.net/test/read.cgi/tech/1116209988/l50
0997デフォルトの名無しさん
2005/05/16(月) 11:27:31ステータス バーに何行何列と表示される。
errorやwarningが出たら、F4キーを押してエラー箇所に移動できる。
普通の人ならこれで十分だ。
0998デフォルトの名無しさん
2005/05/16(月) 11:30:490999デフォルトの名無しさん
2005/05/16(月) 11:31:421000デフォルトの名無しさん
2005/05/16(月) 11:32:2410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。