★初心者にVisual C++を教えるスレ★ Part14
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGお兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。
■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。
質問の仕方については次のページが大変参考になります。
http://www.hyuki.com/writing/techask.html
http://www.geocities.co.jp/Beautycare/4965/public/template.html
■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
(MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。
前スレ
★初心者にVisual C++を教えるスレ★ Part13
http://pc5.2ch.net/test/read.cgi/tech/1089011118/l50
0002デフォルトの名無しさん
NGNGPart13 http://pc5.2ch.net/test/read.cgi/tech/1089011118/
Part12 http://pc5.2ch.net/test/read.cgi/tech/1083585833/
Part11 http://pc5.2ch.net/test/read.cgi/tech/1077965179/
Part10 http://pc5.2ch.net/test/read.cgi/tech/1074933908/ ※
Part09 http://pc5.2ch.net/test/read.cgi/tech/1068983609/ ※
Part08 http://pc5.2ch.net/tech/kako/1063/10630/1063029371.html
Part07 http://pc5.2ch.net/tech/kako/1056/10562/1056280510.html
Part06 http://pc5.2ch.net/tech/kako/1052/10529/1052931903.html
Part05 http://pc5.2ch.net/tech/kako/1048/10486/1048698321.html
Part04 http://pc5.2ch.net/tech/kako/1044/10441/1044196393.html
Part03 http://pc5.2ch.net/tech/kako/1038/10381/1038160750.html
Part02 http://pc3.2ch.net/tech/kako/1030/10309/1030985362.html
Part01 http://pc3.2ch.net/tech/kako/1023/10235/1023530449.html
※「いや〜、ごめんなさい」により、紛失の可能性
// 関連
■MFC相談室 mfc11.dll■
http://pc5.2ch.net/test/read.cgi/tech/1088084875/
Win32API質問箱 Build22
http://pc5.2ch.net/test/read.cgi/tech/1092524669/
鬱だ氏のう DirectX (Part 14)
http://pc5.2ch.net/test/read.cgi/tech/1088594869/
C++相談室 part34
http://pc5.2ch.net/test/read.cgi/tech/1092018643/
C/C++の宿題を片付け作戦指令 30代目
http://pc5.2ch.net/test/read.cgi/tech/1091954342/
0003デフォルトの名無しさん
NGNG猫でもわかるプログラミング
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
0004デフォルトの名無しさん
NGNG市ね
0005デフォルトの名無しさん
NGNG乙
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG意味不明
0008デフォルトの名無しさん
NGNGウイザードでDLLのプロジェクトを作成する。
cppとdefを書き換える。
コンパイルする。
0009デフォルトの名無しさん
NGNG環境:Visual Studio 6
C++にある、setというコンポーネントを使おうとしてます。
勉強段階として、次のデータ型を
---
///データ型
typedef struct{
stringid;
stringname;
stringdetail;
} DATA;
template<typename DATA>
bool operator<(DATA const &a, DATA const &b){
return a.id < b.id;
};
---
以下のsetに次々と登録していきたいと考えています。
set<DATA> idlist;
が、次のようなエラーが出てしまいます。
error C2667: '<' : 2 個のオーバーロード関数があいまいで最適な変換ができません。 (新しい機能 ; ヘルプを参照)
error C2593: 'operator <' があいまいです。
idの部分を、intに変えた場合はうまくいきました。
なぜ、stringにするとダメなのでしょう…?
何かご存知の方がおられましたら、ご教授の程お願いいたします。
0010デフォルトの名無しさん
NGNGbool operator<(DATA const &a, DATA const &b){
return a.id < b.id;
};
ってか、stringのあとにちゃんと空白を入れろと。
0011デフォルトの名無しさん
NGNGありがとうございました。できました。
template宣言いらないのか…
空白をTABにしていたので、消えちゃいました;;
次から気をつけます(^^)ゞ
0012デフォルトの名無しさん
NGNGVisual C++ 6.0 Professional Editionで作ったものって売っても問題ないの?教えてください
使用許諾書のを読んだけど、問題ないみたいが。
0013デフォルトの名無しさん
NGNGネット上で拾ったDLLモジュールのソースをコンパイルして使用したいのですが
VCTK2003+PSDKの環境で
VCTKの方のコンパイラを使用してます
cl /c AutoAcce.cpp
link /dll AutoAcce.cpp /DEF:AutoAcce.def
それで以下の結果に終わってしまいます。
何がいったい原因なんでしょうか?
Creating library AutoAcce.lib and object AutoAcce.exp
AutoAcce.obj : error LNK2019: unresolved external symbol __imp__KillTimer@8 referenced in function "void __stdcall DefaultEquip(struct HWND__ *,unsigned int,unsigned int,unsigned long)" (?DefaultEquip@@YGXPAUHWND__@@IIK@Z)
AutoAcce.obj : error LNK2019: unresolved external symbol __imp__SetTimer@16 referenced in function "int __stdcall OnSend(unsigned char *,int)" (?OnSend@@YGHPAEH@Z)
AutoAcce.dll : fatal error LNK1120: 2 unresolved externals
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG・開発環境を VC++ 6.0 から VC++ .NET に移行した
と、開発環境の変更だけの更新内容を見かける事があるのですが
VC++ 6.0 から VC++ .NETへ移行することで
起動の早さ等、ユーザー側に何らかの影響を及ぼすのでしょうか?
VC++素人の質問ですみません、よろしくお願いします
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGmanegedで書き直した場合なら、実行にCLRランタイムが必要になるし
起動速度なんかも大分かわってくるんじゃないの?
0018デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/B00009PJOC/qid=1093782111/sr=1-2/ref=sr_1_10_2/249-3678490-8701153
対応OS:Win2000Sv/Win2000AdvSv/Win2000Profesl/WindowsXp Home/WindowsXp Pro/Win2003Sv STD/Win2003Sv
になってるのですがMe、98では使用不可でしょうか?
0019デフォルトの名無しさん
NGNGインストール出来ません
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNGでは「インストールできます」ってことにしておきますね
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG(MRU?)
そのファイル名を取得できる方法をお教えください。
0024デフォルトの名無しさん
NGNGVC6.0付属MFCには、CWinAppのprotectedメンバにm_pRecentFileListがある。
MSDNには載ってないけど多分これ使えばいいんじゃね?
0025デフォルトの名無しさん
NGNGレジストリから漁ったりなんかしちゃったりして
0026デフォルトの名無しさん
NGNGRADIUSサーバにRADIUSプロトコルで送信し、
ユーザの認証を行うRADISUクライアント用のAPをVCで作ろうと思っています。
Active DirectoryでRADIUSを叩けるという話を聞きまして、
調べてみたのですが、ADSIでActive Directoryにアクセスするという所までわかったのですが、
具体的にどのようなことをすれば良いのかわかりませんでした。
そこでみなさんの知恵をお借りしたいのですが、ご存知無いでしょうか?
参考になるサイト、書籍やアドバイスがございましたら、ご教授くださいませ。
宜しくお願い致します。
開発環境は
Windows2000pro
Visual Studio.NET
です。
0028デフォルトの名無しさん
NGNG俺の脳内ソースだと、ProはOKなはず
0029デフォルトの名無しさん
NGNGその画面には、[OK]ボタンがデフォルトボタンになってます。
また、リストビューが表示されています。
このリストビューを、サブクラス化してエンターキーを押した場合に、
ダイアログを出そうと考えています。
ところが、エンターを押すとデフォルトボタンの[OK]が実行されてしまいます…
どうしたらいいでしょうか…
試しに、スペースキーを入れてみましたが、スペースはうまくいきます。
サブクラス化した一部です。
switch(message) {
case WM_KEYDOWN:
switch(wParam){
case VK_RETURN:
MessageBox(hWnd, "えんたー", NULL, MB_OK);
break;
case VK_SPACE:
MessageBox(hWnd, "すぺいす", NULL, MB_OK);
break;
:
:
0030デフォルトの名無しさん
NGNGOnOK()
で
//CDialog::OnOK();
とコメントアウトする
適当な処理をそこに足す
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG#include<stdlib.h>
int main(void){
FILE *fp;
if((fp=fopen("sintai.dat","w"))==NULL){
printf("File not open\n");
exit(1);
}
int i;
struct sintai {
char *name;
int height,weight;
};
static struct sintai a[]={
{"nagata" ,180, 85},
{"nisimura" ,185, 95},
{"nakanisi" ,175, 80},
{NULL,0,0}
};
for (i=0 ; a[i].name != NULL; i++){
printf("%s\t%d\t%d\n",a[i].name,a[i].height,a[i].weight);
fprintf(fp,"%s\t%d\t%d\n",a[i].name,a[i].height,a[i].weight);
}
return 0 ;
}
これはstruct sintai a[]を初期化してsintai.datへ書き出すプログラムですが
これの逆をする場合、つまりsintai.datが 先に与えられている条件でsintai.datを読み込んで
struct sintai a[]へ代入する場合はどうすればいいでしょうか
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGメモ帳を終了させてから notepad.exe をバイナリエディタで読み込み保存しろ
003628
NGNGすみません。環境説明が足りなかったです…
おっしゃるとおり、SDKなのでOnOKの処理はありません。
デフォルトボタンはリストビュー以外では有効にしておいて
リストビューでのエンターに対してのみ、ダイアログを表示したいのです。
この手の動きをするアプリはいくつかあるので、実現可能なはずなのですが…
0037デフォルトの名無しさん
NGNG教えてください。
m(__)mお願いします。
0038デフォルトの名無しさん
NGNG自分で.cppファイル解析して書くしかない。
ヘッダ間違って消したのか?
0039デフォルトの名無しさん
NGNG他の人が作ったファイルの機能などを取り込みたい、
でもそっちにもメインウィンドウがあってしかも機能がウィンドウに密着している(と思う)
このウィンドウは全然要らないので
必要な関数だけを読んでコードを書きました。
コンパイル、ビルドにはエラーはありません。
実行時に
Debug Library
Debug Assertion Failed!
というエラー
多分メインウィンドウが重複しているとかだと思うのですが..
もっと詳しく書かないとアドバイスもらえませんかね。
0040デフォルトの名無しさん
NGNGAssertしたならその行がわからないと。
「再試行」でその行に止まるからそれを見て自己解決か再投稿。
ソース抜き出し再利用とかでは気をつけないとよくある。
0041デフォルトの名無しさん
NGNGコピー前にクリップボードに "retun 1;"がはいっていて
"hoge()"を選択して
おそらくCtrl+Cを押すと
retun 1;hoge()
がクリップボードに入ってる時がたまにあるんだわ。
これって、Ctrl+C以外を押したときになるの?
それとも、VC以外の機能?
004241
NGNGVC6
WindowsNT4
です。
他に常駐は「紙」
インストールしているエディタは、
秀丸と
EmEditorと
サクラエディタと
xyzzy
です。
0043デフォルトの名無しさん
NGNGVC++のエディタ上での事?
0044デフォルトの名無しさん
NGNGはい。
ショートカットキーでコピペすると
たまに、古いクリップボード内容がくっついてるんです。
何か別のキーを押してたのかもしれません。
そんな機能ってあります?
0045デフォルトの名無しさん
NGNG(´ー`)y−〜〜
0046デフォルトの名無しさん
NGNG今、数十回やってみたけど、そんな事一度も起こらんよ。
とりあえず、SPはあててるの?
0047デフォルトの名無しさん
NGNGこれって違法ですよね?
004829
NGNGデフォルトボタンをやめて確認しようとしたところ、
VK_RETURNに入りませんでした!
つまり、デバッガで、VK_RETURNとVK_SPACEのMessageBoxにブレイクポイントしても
スペースは止まるが、エンターだと止まらないのです…
調べてみたのですが、MFCの場合は「PreTranslateMessage」を使う
ということはわかったのですが、SDKの場合はどうすれば良いのでしょう?
0049デフォルトの名無しさん
NGNGどうすればよいのでしょうか?
0050デフォルトの名無しさん
NGNGアプリ作れますか?
作れるか作れないかで結構です。
それによって、VCかBCBにするか決めるので・・・
0051デフォルトの名無しさん
NGNGよいのでしょうか?
#include<A>
#include<B>
#include<C>
A,B,C全て異なるフォルダから参照することはできますでしょうか?
0052デフォルトの名無しさん
NGNG意味わからんがとりあえず貼っとく。
ttp://forums.belution.com/ja/vc/000/262/27.shtml
0053デフォルトの名無しさん
NGNG出来る。
でもBCBの方が遥かに楽。
でも仕組み知っておきたいならMFCか。
BCBは、これ以上バージョンアップしない予感だし
仕事ではVCが遥かに多い。
とりあえず
両方知っとけ。
0055デフォルトの名無しさん
NGNGエクスプローラ上で、ファイルやフォルダのアイコンの上で右クリックすると、
「開く」「印刷」「検索」などの項目で構成されるメニューが表示されますよね。
項目を非表示させる、あるいは項目名が灰色表示で選択できない、というプログラムを
作りたいです。
イメージとして、作りたいと思うプログラムが起動されているとき、項目の非表示、
あるいは灰色表示で選択できなくなり、起動されていないときは普通に表示されて
選択ができる、というものです。
VCのシェルプログラミングに関するサイトをいろいろ見たのですが、イメージに
ぴったり合うサイトが発見できませんでした。
メニューに項目を追加する、というものならたくさんありましたが…。
どなたかやり方、あるいは参考リンクをご存知でしたら教えてください。
0056デフォルトの名無しさん
NGNGEnableMenuItem(item, MF_GRAYED);
005755
NGNGありがとうございます。
それで、関連して2つ質問があります。
(1)EnableMenuItemの第一引数に設定する情報ですが、afxres.hをインクルードして、
ID_FILE_XXX、又は、ID_EDIT_XXXで始まる定数を設定すればよいですよね?
(2)作りたいと思うプログラムは、MFCのダイアログベースでやりたいです。
試しに新規にプロジェクトを作成後、クラスウィザードでOnRButtonDownを追加して、
以下のように組みました。
(例:ファイルを右クリックしたときに、「開く」を無効にしたい場合)
void CClickDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
CMenu *hMenu;
CWnd* cwParent = GetParent();
DWORD dwStyle = cwParent->GetStyle();
hMenu = cwParent->GetSystemMenu(FALSE);
hMenu -> EnableMenuItem(ID_FILE_OPEN, MF_GRAYED);
CDialog::OnRButtonDown(nFlags, point);
}
上でビルドして実行ファイルが立ち上がっている状態で、あるテキストファイルのアイコン上で
右クリックしました。
しかし、「開く」の項目が無効になりませんでした。
これは、ソースの組み方そのものがおかしいのでしょうか?
ダイアログベースでできるのであれば、プロジェクト新規作成後からの手順を
教えていただけたらうれしいです。
0058デフォルトの名無しさん
NGNGちょっと意図する事がよく分からないんですが、
要するに、自分の作ったプログラムから
エクスプローラのポップアップメニューを制御したという事ですか?
↓にシェル関係の情報が紹介されてるので参考までに。
ttp://www.asahi-net.or.jp/~GV4J-SGUR/narik/susucyu.htm
0059デフォルトの名無しさん
NGNGjavaはそれなりに出来ますがc++自体初心者です。
MFCアプリケーションだとすでに、ヘッダーファイルやcppファイルなどが
作られていますがその中の文法がわかりません。
2,3さつ本持っていますが、どれもコンテンツの加え方みたいなものしか書いていません。
中で何が行われているかわからないと、この先壁にぶち当たるような気がしていて
とりあえず、中でどういう順番で何が行われているか理解しようと思っています。
こういう自分にお薦めのvisual c++.netの本がありましたら教えていただけないでしょうか?
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG自分も最初はMFCどころかC++の文法も分からなかったけど
C/C++の文法を覚えてからMFCでのプログラミングを練習したよ。
最初は、ホント滅茶苦茶なコードしか書けず何度何度も破綻したけど、
色々な書籍やサイトなどの文献を読み漁って(時には2chでの質問も)
諦めずにやっていたら、いつの間にやらそれなりにまともなコード書けるようになってたよ。
今では、公開しているソフトがそこそこ評価してもらえるくらいになったよ。
ちなみに、自分で「まとも」だと思えるアプリが作れる様になるまで3年くらいかかったけどね…
006362
NGNG>こういう自分にお薦めのvisual c++.netの本がありましたら教えていただけないでしょうか?
ごめん、ここの部分のレスがなかったね…
う〜ん、自分の場合は書籍よりもWebの方が有意義な情報が多かったような気がするなぁ。
0064デフォルトの名無しさん
NGNG1冊目 MFCによるWindows95プログラミング
ウィザードの吐き出したソースの変更ではなく
1からスクラッチでソースを起こす方式で
SDK的にMFCを解説
Win32APIの知識は無くても読める
C++の知識は必要
2冊目 MFCアンサーブック
前半にドキュメントビューアーキテクチャの解説がある
MFCのフレームワークが理解出来る
0065デフォルトの名無しさん
NGNGMFCによるWindows95プログラミングは、MFCによるWindowsプログラミングとして、改訂版がでてますよ。
0066デフォルトの名無しさん
NGNGソースファイル
|_MainFrm.cpp
_SOFT.cpp
_SOFTDoc.cpp
_SOFTView.cpp
_stdafx.cpp
ヘッダーファイル
|_MainFrm.h
_Resource.h
_SOFT.h
_SOFTDoc.h
_SOFTView.h
となっていて、MainFrm.cppの中でCMainFrame::OnCreateやCMainFrame::PreCreateWindow
など、MainFrm.hの中にあるメソッドについて何か操作をしているようですが、
これは一体何をしているのでしょうか?
あと、上記のソースファイルの中ではclassが定義されていませんが、classがある時と
ないときで何が変わるのでしょうか?
006766
NGNGあ‥メソッドを上書きしているのですか?
006855
NGNGやりたいことはそのとおりです。
教えていただいたURLですが、実はシェルプログラミングの別件の調査で、
少し前に発見していました。
コーディングをするならEnableMenuItemを使うのではなく、レジストリ操作で
やる方法になるんですか…。
0069デフォルトの名無しさん
NGNG単純なテストプログラムを作ってみたんですが、どうもうまくいきません。
どうすればいいか教えて下さい。
説明が難しいのでワークスペースごとUPしてしまいました。
ごく短いVC++6、WinAPIのプログラムです。
ttp://gamdev.org/up/img/1157.zip
こんな事も分からない俺…orz
よろしくお願いします。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG意図的に作られたものではないにせよ、実質ウィルス。
007269
NGNGそうじゃなくてアフォプログラムでPCバグったとか
そういう意味だったらすいません。。。
0073デフォルトの名無しさん
NGNG007469
NGNG新しいのをUPしようとしたけど(どっちにしろまともに動かないけど)
やっぱ恥かしいので止めときます。
>>70>>71
とりあえず氏ね。
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGマウスボタンON時は、マウスポインタが矩形内にあるか判断した上でフラグをTRUEにする。
マウスボタンOFF時は、フラグをFALSEにする。
で、その変数がTRUEの場合だけ、マウス移動と連動して矩形を移動させれば良いのでは?
007769
NGNG69でUPしたのはなんだかでたらめのやつをUPしてしまったんですが
76と同じ意味の事をやってるつもりのバージョンでもできないんですよねぇ。
WM_MOUSEMOVEは使いたくないし。。。
0078デフォルトの名無しさん
NGNGどの辺りが分からないのかをハッキリさせないと
多分誰も答えてくれないと思うよ。
0079デフォルトの名無しさん
NGNG標準出力の起動しないアプリケーションで
よくprintfが描いてあるのですが、これはどういった効果のためでしょうか?
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGデバッグのときだけ認識するようですがこれはなんなのでしょうか
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG標準出力の起動しないってどういう意味だ?
デバッグ用の出力だろ。
コンソールアプリでなくても標準出力はできるぞ。
パイプ開くツールから起動してログ取ったりする。リダイレクトも出来るだろ。
008469
NGNGすいません。昨日の部分はうまくいったんですが別の問題が発生したので改めて、、、
APIで矩形を描いてそれをマウスで掴んで動かす実験をしてます。
GetAsyncKeyStateでマウスボタンの押下状態を取得してるんですが、
外からボタンを押したまま矩形に接しただけでも矩形を掴めてしまって困ってます。
(連射しながら近づいているような扱いになっているためフラグとか使うのも無理っぽい)
ウィンドウメッセージのswitchを使わずに、
きちんと矩形内でマウスボタンを押下する以外には掴めないようにできないものでしょうか?
なにか方法があったら教えてください。お願いします。
↓ソースです。(VC6++です)
ttp://gamdev.org/up/img/1162.zip
0085デフォルトの名無しさん
NGNGstatic int oldX,oldY;;
static bool bDrag=false;
//左ボタンが押されてたら移動
if(bDrag) move(mouseX-oldX,mouseY-oldY);
if (GetAsyncKeyState(VK_LBUTTON) & 0x8000){
//カーソルが矩形内にあるかどうか判定
if (mouseX>=wndX && mouseX<=wndX+wndW &&
mouseY>=wndY && mouseY<=wndY+wndH){
bDrag=true;
}
}
else bDrag=false;
oldX=mouseX;
oldY=mouseY;
0087デフォルトの名無しさん
NGNGif (!bDrag&&GetAsyncKeyState(VK_LBUTTON) & 0x8000)
0088デフォルトの名無しさん
NGNGあだめだ
0089デフォルトの名無しさん
NGNGint oldX,oldY;;
static bool bDrag=false,bFst=false;
//左ボタンが押されてたら移動
if(bDrag) move(mouseX-oldX,mouseY-oldY);
if (!bFst&&GetAsyncKeyState(VK_LBUTTON) & 0x8000){
bFst=true;
//カーソルが矩形内にあるかどうか判定
if (mouseX>=wndX && mouseX<=wndX+wndW &&
mouseY>=wndY && mouseY<=wndY+wndH){
bDrag=true;
}
}
else{bFst=bDrag=false;}
oldX=mouseX;
oldY=mouseY;
0090デフォルトの名無しさん
NGNG|_A.h
|_B.h
とあって、ヘッダーファイルAの中ではclass Aが定義されていて、ヘッダーファイル
Bの中ではクラスBが定義されています。
ここで、
#include "B.h"
class A : public BとしてクラスBを継承したいのですが
どうしても、C2054 の「定義されていない基本クラスが宣言されています」の
エラーが出てしまいます。
逆に、ためしに
#include "A.h"
class B : public A
とやると、エラーはでません。この理由がわかりません。この場合クラスAとBの
違いは何が考えられるでしょうか?
0091デフォルトの名無しさん
NGNGif (!bFst&&GetAsyncKeyState(VK_LBUTTON) & 0x8000){
bFst=true;
//カーソルが矩形内にあるかどうか判定
if (mouseX>=wndX && mouseX<=wndX+wndW &&
mouseY>=wndY && mouseY<=wndY+wndH){
bDrag=true;
}
}
else if(bFst){bFst=bDrag=false;}
0092デフォルトの名無しさん
NGNG恐らくだが、
先行宣言 でぐぐれ
009392
NGNG0094デフォルトの名無しさん
NGNG原因を突き止めるためにsimplifyしてみたら?
----- A.h -----
#include "B.h"
class A : public B {};
----- B.h -----
class B {};
ここまでやれば通るでしょ?
009669
NGNG色々お世話様でした。助けてくれた方ありがとうございました。
0097初心者
NGNG目的は、すでにあるテキストファイルを次々に読み込んでその中の一部のデータだけを
まとめて一つのファイルに出力したいのですが・・・、
次々にファイルを読み込む命令で,
fpopen(fp,"ファイル名+number","r");
みたいな形でnumberの部分for文で次々に変えていきたいのですが
うまくいきません(T_T)
strcatやstrcpyを使うことは考えたのですがint型はchar型では渡せないとかなんとかの
エラーが・・・。雑な説明ですがどうぞご教授願います。
0098デフォルトの名無しさん
NGNGsprintf
0099初心者
NGNG試してみます!
ご返事ありがとうございます!!
0100デフォルトの名無しさん
NGNGそんなに難しい事かな?
以下のコードで出来るよ(確認済み)。
static POINT BoxPos;
static POINT OldCurPos;
static BOOL DrgFlag;
POINT CurPos;
GetCursorPos(&CurPos);
ScreenToClient(hWnd, &CurPos);
if(GetKeyState(VK_LBUTTON) & 0x80){
if(!DrgFlag){
if(CurPos.x >= BoxPos.x && CurPos.x <= BoxPos.x + 64 &&
CurPos.y >= BoxPos.y && CurPos.y <= BoxPos.y + 64){
DrgFlag = TRUE;
OldCurPos.x = CurPos.x - BoxPos.x;
OldCurPos.y = CurPos.y - BoxPos.y;
}
}
}else{
DrgFlag = FALSE;
}
if(DrgFlag){
BoxPos.x = CurPos.x - OldCurPos.x;
BoxPos.y = CurPos.y - OldCurPos.y;
}
0101デフォルトの名無しさん
NGNGA1.cpp
ヘッダーファイル
B1.h
をビルドするとエラーが出ませんでした。後にソースファイルにA2.cppを追加したらエラーが
でました。そしてその後A2.cppを消して再ビルドすると以下のエラーが出て
どうしても解決しません。
error LNK2020: 未解決のトークン
fatal error LNK1120: 外部参照1が未解決です。
調べると、変数が見つからないという類のエラーらしいのですが、だとしたら
一度通ったコードが通らなくなる理由がわかりません。
誰か教えてください!
■ このスレッドは過去ログ倉庫に格納されています