VisualC++相談室 5
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001いさましいチビ
NGNG旧スレッド
http://pc.2ch.net/test/read.cgi/tech/1002165477/l50
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGAが CreateProcessでアプリBを起動し、Bにメッセージを送信しました。
と、ここまでは良いのですが、そのBが、メッセージを処理し終えるまで、
Aを待機させるには、どうしたら良いのでしょう??
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGそ、そのやり方が分からない。何を待てば良いのですか?
>5
SendMessageすると OS(95)ごとハングします。
ReplyMessageとかしないと駄目なんですかねぇ
メッセージを受け取る側にも何か処理がいるとか?
WM_DROPFILESを、テストのためにメモ帳に投げているんですが、
ドロップされたファイルを表示したところで固まってしまう。
PostMessageして、ちょっと間を置いて、ドロップオブジェクトの
メモリを解放すると、うまくいきます。
0008デフォルトの名無しさん
NGNG↓
CreateProcess
↓ → 子プロセス開始
↓ ↓
↓ メッセージループ
SendMessage ↓
↓ →
↓ 処理
WaitForMultipleObjects
↓
復帰 ← SetEvent
↓
Wait〜復帰までの間UIが固まって困るとかいう場合は
タイマーをセットしてWM_TIMERでWaitしろ。
待ち時間はゼロでな。
0009デフォルトの名無しさん
NGNG子プロセスのプロセスハンドルも同時に待機しとけよ。
念のため。
0010
NGNG00114
NGNGwait.c
#include <windows.h>
main()
{
HANDLE hEvent = CreateEvent(NULL, FALSE,FALSE,"test");
PulseEvent( hEvent );
CloseHandle( hEvent);
}
pulse.c
#include <windows.h>
int main()
{
HANDLE hEvent = CreateEvent(NULL, FALSE,FALSE,"test");
WaitForSingleObject( hEvent, INFINITE );
CloseHandle( hEvent);
}
0012デフォルトの名無しさん
NGNGそこんとこよろしく。
WAIT_ABANDONEDが変える可能性もあるんでWaitの戻り値チェックもよろしく。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGおー、なんか道が見えてきた。Thanksっす。
0015デフォルトの名無しさん
NGNGWM_DROPFILEは別プロセスには送れないと思うのです。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG...
PostMessageでも駄目だと思うのです。
0018のの
NGNGAPI使って、独自のGUI作りたいんですけど
いいサイトありませんでしょうか?
APIとかの説明とかじゃなくて、
ノウハウというか、効率のいいやり方というか、
こつというか。
0019デフォルトの名無しさん
NGNG王道はない。
0021デフォルトの名無しさん
NGNGコントロールパネルのサウンド設定で全部”なし”にしました。
しかし、今度はビープ音が鳴りやがります。何とかこいつを
止める方法はないでしょうか?
0022デフォルトの名無しさん
NGNGケース開いて、スピーカに繋がっているコードをちぎる。
0023デフォルトの名無しさん
NGNG短い無音のwavに設定したらイイんだけど、なんだか泥臭いなあ
0024デフォルトの名無しさん
NGNGスピーカーの音量を最小にする。
0025デフォルトの名無しさん
NGNG無音のwavに設定する。
0026デフォルトの名無しさん
NGNGファイル名文字列へのポインタじゃないぞ。
HDROP だぞ。ちゃんと HDROP 送ってるか?
0027デフォルトの名無しさん
NGNG0028初心者
NGNGMFCをやっているのですが、ハンドルというものがでてきて、とりあえずはじめでてきたときに、「IDみたいにとらえて・・・」のような記述があったのでそのようにとらえていたんですが
「メンバ変数にハンドルをもつクラスが・・・・」のような記述を別で見ました。なんのことだか意味がわからなくなってしまいました。。
どういうことなんでしょうか??
0029デフォルトの名無しさん
NGNG「メンバ変数にIDを持つクラス」じゃダメなんでしょうか
0030初心者
NGNGえっと・・・それって・・とあるクラスに「ハンドル」というものを受ける用のメンバ変数が定義されているんですってことでしょうか???
0031デフォルトの名無しさん
NGNGそれ、単に
class CWnd
{
HWND m_hWnd;
public:
void Create()
{}
....
};
みたく、メンバ変数にハンドルを持ってるクラスのことなんじゃないの?
0033デフォルトの名無しさん
NGNGあんたは日本語で喋れ。
「でしょうか???」
と適当な文章を疑問形で振らずに、何がわかって何がわからないのか明記しろ。
0034初心者
NGNGCDC MDC;
・・
・・
pb=MDC.SelectObject(&bp);
前の状態(オブジェクト??)を保持する為にこうかくって書いてありましたが、このpbてなんですか?ハンドルとは別物ですか?
(意味不明な質問ですいません)
0037デフォルトの名無しさん
NGNGIDを何だと思っているのだ?
0038デフォルトの名無しさん
NGNGMFCを使わずにタスクトレイに常駐するアプリを作ってるんですが、
トレイ上のアイコンにカーソルを乗せた時にでてくるポップアップの文字列を
値によって変化させたい時はどうしたらいいでしょうか?
0039初心者
NGNG固有の識別子のようなとらえかたをしましたが・・・・
0040初心者
NGNG「オブジェクトへのポインタ=ハンドル」
のような記述を見つけました。どういう意味なのでしょう?具体的説明がほしいです。
0041デフォルトの名無しさん
NGNGhttp://yougo.ascii24.com/gh/15/001551.html
http://yougo.ascii24.com/gh/66/006631.html
広義には、実体を指し示す、何らかのIDやポインタなど。
0042デフォルトの名無しさん
NGNGありがとうございます。読ませていただきました。
でも
「オブジェクトを生成するとハンドルが返される」ということですが
オブジェクトが生成される瞬間とは具体的にどのようなときなのでしょうか?
例えばこれだとどうでしょう?(BMP表示)
↓
CBitmap bp,*pb;
CDC MDC;
bp.LoadBitmap(name);
MDC.CreateCompatibleDC(pDC);
pb=MDC.SelectObject(&bp);
pDC->BitBlt(0,0,100,100,&MDC,0,0,SRCCOPY);
MDC.SelectObject(pb);
bp.DeleteObject();
0043デフォルトの名無しさん
NGNG1 CBitmap bp,*pb; ←オブジェクト(インスタンス)の生成
2 CDC MDC; ←オブジェクト(インスタンス)の生成
3 bp.LoadBitmap(name); ←リソースからビットマップを読み込んで、そのハンドルを持つ
4 MDC.CreateCompatibleDC(pDC); ←デバイスコンテキストのハンドルを作ってそのハンドルを持つ
5 pb=MDC.SelectObject(&bp);
6 pDC->BitBlt(0,0,100,100,&MDC,0,0,SRCCOPY);
7 MDC.SelectObject(pb);
8 bp.DeleteObject
「オブジェクトが生成」というのが、C++のオブジェクトなのか
Windowsのリソースなのかわからないけど、こういう処理をしてる
1 bpはオブジェクト(インスタンス)の生成
2 CDCはオブジェクト(インスタンス)の生成
3 リソースからビットマップを読み込んで(生成して)、そのハンドルbp内部に持つ
4 デバイスコンテキストのハンドルを作ってそのハンドルをMDC内部に持つ
00453
NGNGFORMATETC form = { CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
STGMEDIUM medium;
pデータオブジェクト->GetData(&form , &medium );
で、別なところで
PostMessage(hWnd, WM_DROPFILES, (WPARAM)(m_medium.hGlobal), 0);
送り先側でドロップ処理が終わったら、
ReleaseStgMedium( &m_medium );
なんですが、問題ありありですか?
受け側の DragFinishで解放するメモリと、ReleaseStgMediumで解放する
メモリってどういう関係?
0046デフォルトの名無しさん
NGNG複製を作って送ればいいんじゃないでしょーか
0047初心者
NGNG「ハンドルを内部に持つ」という話がイマイチわかりません。ハンドルはオブジェクトの内部に持ったりするんですか??
0048デフォルトの名無しさん
NGNGだから、ハンドルをIDみたいに捉えればいいんだろう?
単なる整理番号みたいなものと思えばいい。
ビットマップだのウィンドウだのを新しく作るたびに、整理番号が割り当てられる。
後でこの番号が必要になるから、メンバ変数に代入して憶えておくってだけの話。
0049デフォルトの名無しさん
NGNGキミはこう考えて矛盾にはまった気がしてるんだろう。
ハンドル = オブジェクトへのポインタ or オブジェクトを指すID番号
オブジェクトのメンバとしてハンドルを持つ
→ 自分へのポインタを自分で持つ???
そうじゃない。そうじゃないんだ。
でも上手く説明できる自信がないんで、誰かお願い。
0050デフォルトの名無しさん
NGNGMM_TEXTはデバイスにより異なるらしいので印刷のときには不適切ですよね?
例えばA4の紙に1行あたり30文字で印刷するにはどうしたらいいですか?
教えてください。
それと CreateFont の第1引数で正の値と負の値をセットした場合どう違うんですか?
MSDNの説明は良くわかりません。
0051デフォルトの名無しさん
NGNG> それと CreateFont の第1引数で正の値と負の値をセットした場合どう違うんですか?
確か、負数だと「文字の高さ」で指定したことになって、
正数だと「文字を囲むcellの高さ(アクセント記号の分の余白とかも含む高さ)」で
指定したことになる。逆だったかもしれない。
印刷はやったことないので俺はわからん。スマソ。
0052初心者
NGNGなんとなくわかってきましたが、少しわからないのが、そのメンバ変数っていうのは一体どれなんでしょうか・・・もすこし具体的に教えてもらえないでしょうか。
>>49
はまってます・・・・・・
0053デフォルトの名無しさん
NGNGと言うかソース読まないと使えないのがMFCの出来の悪いところ
もっとうまく抽象化されたライブラリ使ったほうがええよ
0054デフォルトの名無しさん
NGNGBELOW_NORMAL_PRIORITY_CLASSとABOVE_NORMAL_PRIORITY_CLASS
はWin2000から使えるようになったとの事なのですが
(http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_createprocess.htm)
実際これを使おうとすると、そんなのないよ(未定義エラー)となります。
どうしたら使えるようになるのでしょうか?
環境は、Win2000 + VC++6.0(SP4)です。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG5以上です(5が出ているのは確実に知っています)
SPっすか?
0057デフォルトの名無しさん
NGNGPlatformSDK入れれ。
0058デフォルトの名無しさん
NGNGStGet.obj : error LNK2001: 外部シンボル ""void __stdcall NkfConvert(char *,char const *)" (?NkfConvert@@YGXPADPBD@Z)" は未解決です
StGet.obj : error LNK2001: 外部シンボル ""int __stdcall SetNkfOption(char const *)" (?SetNkfOption@@YGHPBD@Z)" は未解決です
Debug/kabuget.exe : fatal error LNK1120: 外部参照 2 が未解決です。
と言われてしまいます。
VC++6 / win2000で同じフォルダにnkf32関係のものをすべて入れました。
プロジェクトの設定―リンクですべての構成に対して
wsock32.lib nkf32.lib winmm.lib を追加しました。
どうすればいいのでしょうか。
0059aaa
NGNGKabuGet.obj : error LNK2001: 外部シンボル ""void __stdcall NkfConvert(char *,char const *)" (?NkfConvert@@YGXPADPBD@Z)" は未解決です
KabuGet.obj : error LNK2001: 外部シンボル ""int __stdcall SetNkfOption(char const *)" (?SetNkfOption@@YGHPBD@Z)" は未解決です
Debug/kabuget.exe : fatal error LNK1120: 外部参照 2 が未解決です。
の間違いでした。
0060aaa
NGNG疑問は解決してないです、すみません。
0061デフォルトの名無しさん
NGNG呼び出してるんじゃないか?
extern "C"で解決しそうな気もするが。
0063デフォルトの名無しさん
NGNGビルダーからVCへ移植しているのですが、ビルダーでの(TstringList)
と同じ機能の関数はVCで言うと何になるんでしょうか?
ちなみにMFCは使わない方向です。すいません、お願いいたします。
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG』
の取得の方法を教えてください
0066デフォルトの名無しさん
NGNG自己解決しました。
__argc、__argv マクロを使えばよいのですね・・・
0067デフォルトの名無しさん
NGNGのように __TEXT を使うとどうなるんですか?
UNICODE 関連だと思いますが・・・
WindowsNT で GetProfileString で取得した文字列は UNICODE なんですか?
現在デフォルトのプリンタを取得するプログラムを作っているんですが
Windows系の場合はレジストリから取得しNT系の場合はWIN.INIから読み込みらしいのですが
(MSDNの SDK\GRAPHICS\ICM20\ICMVIEW を参考にしています。)
もっと簡単に行う方法はありませんか?
0068デフォルトの名無しさん
NGNG汎用テキストマッピングをつかうなら、いっそのこと
テキストはリソースで管理してみたら?
0069デフォルトの名無しさん
NGNG普段、ワイドキャラクタを使わないんで、よく分からないんだけど、
バッファの長さをAPIに渡すのに
sizeof(szTemp)
でいいの?
ワイドキャラだったら、文字数の二倍の値になるような気がするんだけど。
0070
NGNGShellExecute (m_hWnd,"open","http://???",NULL,NULL,SW_SHOW);
とすれば開けますがURLがばれてしまいます。(IEが表示されてしまうため)
で、最後のSW_SHOWをSH_HIDEにすれば表示されないのでOKなんですが
そうするとメモリにIEが残ったままになってしまって都合悪いです。
どうすればいいでしょう?
0071デフォルトの名無しさん
NGNGスパイウェアですか?
0072デフォルトの名無しさん
NGNGGoogleでサーチしても全然、関連するサイトが見つかりません。
なにか参考になるURLや書籍を教えていただけないでしょうか?
0073デフォルトの名無しさん
NGNGASPと入れれば検索できるかも・・・
007473
NGNG0075
NGNG最悪、ASPで作ります。トホホ。
0076デフォルトの名無しさん
NGNG使用状況を密かに作成者に送るソフトのことじゃないの?
0077デフォルトの名無しさん
NGNGそれなら
sizeof(szTemp / sizeof(TCHAR))
もしくは
sizeof(szTemp / sizeof(szTemp[0]))
か
sizeof(szTemp / sizeof(*szTemp))
すきなのにすれば?
0078初心者
NGNG007972
NGNGログオンしなくても動く、UNIXのデーモンみたいなやつを作りたいのですが・・・。
0080デフォルトの名無しさん
NGNGカッコのくくり方が間違ってる。
0081デフォルトの名無しさん
NGNGでは混乱させるお話をば・・・
ハンドルとはロッカーの鍵のようなものです。
ロッカーはWindows&174;サービスです。
ロッカーの鍵を開けると(Createなにやら関数)、
鍵をWindows&174;からもらいます。
そしてオブジェクトは鍵を内部に持つのです。
そして何かをしたいときにはこの鍵を
つかって、Windows&174;に働きかけるのです。
0082&174;
NGNG0083デフォルトの名無しさん
NGNGこうかな?
0084デフォルトの名無しさん
NGNGウインドウとか、いろいろOSが管理してるリソースが
あるんだけど、生で扱うのとプログラミングが煩雑に
なるから、C++の機能(クラスやライブラリ)でラップして
簡単にプログラムを組めるようにしてるの。
初心者のうちは、ライブラリの下で、どういう操作が
おこなわれているかピンと来ないだろうけど、慣れてくると
「ここでCWndクラスを構築しても、中身は空。
Createをコールして、OSの管理するウインドウハンドルが
確保される」
というかんじで、内部の動きが見えるようになる。
0085>78
NGNG持っている。Windowsのウィンドウは HWND というハンドル(=ID)を使って操作されるので、
そのIDを記憶しておく必要がある。そのIDに相当するのが、HWND型の m_hWnd。
何かの関数で、引数で CWndへのポインタ pWnd を受け取って、
何かの関数でその HWNDを渡す必要が有ったら、
void function1(CWnd* pWnd)
{
function2(pWnd->m_hWnd);
...
みたいに使う。
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGWin32API
0088デフォルトの名無しさん
NGNG一般的だと思いますよ。
一部には、絶対使わないという人もいますが、
VCで作られて、公開されているソフトは、MFCを使ってる
ものが多いようですね。
0089デフォルトの名無しさん
NGNGアイコンがMFCのデフォールトアイコンだったアプリがあったぞ(マジ
0090デフォルトの名無しさん
NGNG達するまで色んな小道具を付けるのは物凄い作業量のような
気がするのですが... それとも自前のスケルトンやフレーム
ワークでも持ってるのかな>普通のWin32APIオンリーな方
0091デフォルトの名無しさん
NGNGMFCってクラスじゃない。そんなの分からないのよ。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGバージョンによって互換性があるとかないとか。
プロの方々、おせーて。
0094デフォルトの名無しさん
NGNGううん。
Windows98以降はOSについているみたいだし。
0095デフォルトの名無しさん
NGNG当然、出来る。一度やってみるよろし。
0096デフォルトの名無しさん
NGNGありがとう。
まずは必要なヘッダーと使える関数を調べないとだな・・・・
0097デフォルトの名無しさん
NGNGていうかVC++のATLウィザード使えばサービスできるよ
0098デフォルトの名無しさん
NGNGヘッダは当分 windows.h だけでおっけー。
ここへどうぞ。Windows SDK 編、第1部から。
ttp://www.kumei.ne.jp/c_lang/
0099デフォルトの名無しさん
NGNG二次元配列で要素を,a[1024][512]、とすると
エラーになっちゃうんですけど、どうにかなりませんか?
最低でも512*512の配列が必要なんすけど。
0100デフォルトの名無しさん
NGNGグローバル変数か静的変数(static)にしませう。
0101デフォルトの名無しさん
NGNG関数から出してグローバル領域で宣言してみれば?
0102≒99
NGNGなんでそうすると良いのでしょーか?
0103デフォルトの名無しさん
NGNG良い資料/WEB等、無い???
作りたいのは、認証システム。
doc, xlsファイルとかだと、直にURLたたかれたら、ユーザチェック
できないでしょ?普通。
あ、win統合認証とかは使えない。
ユーザIDとパスワードたちは、DBに入ってるし。。。
MSのUSサイトいっても、イマイチ情報が古いし。
0104>>102
NGNG0105デフォルトの名無しさん
NGNGスタックが足りないから。
デフォルトの設定ではスタックが1MBしかないので、
1MBを超えるローカル変数は作れません。
0106初心者
NGNGその「内部に持つ」というのの形がイマイチ・・
>>84
上に同じく「何処に確保されるのでしょう?
>>85
???
function2(pWnd->m_hWnd);
は、戻り値みたいな考えなんですか??では・・・>>42のような場合はどうなんでしょうか・・・・・
内部に持つっていうのは
「m_hWndにハンドルを持つ」ということなのかな???
0107デフォルトの名無しさん
NGNGいくらここで聞いても、これ以上は分からないと思われ。
入門書でもみて、経験を積むのが近道。
0108デフォルトの名無しさん
NGNGWindows が内部で管理してます。
アプリケーションプログラマが、ビットマップやらウィンドウやらを
操作するには、それぞれのオブジェクトを表すハンドルを使います。
MFCのクラス CBitmap は、ビットマップの管理をするわけですが、
Windows が内部で管理してるビットマップを直接触ることは、
当然出来ません。ビットマップを触るには、ハンドルを使います。
CBitmap クラスは、ビットマップの操作をするために、
そのハンドルを保持しています。
・・・わかり?
0109初心者
NGNGその部分はなんとなーくはわかるんですが・・・
わからないのは、例えば
CBitmap bp,*pb;
CDC MDC;
bp.LoadBitmap(name);
MDC.CreateCompatibleDC(pDC);
pb=MDC.SelectObject(&bp);
↑ここで、SelectObjectは前に持っていたオブジェクトへのハンドルを渡すみたいですが、それが、Cbitmap *pbとイコールでつなげてる点がよくわかりません。
pbは、ハンドルなの?????
pDC->BitBlt(0,0,100,100,&MDC,0,0,SRCCOPY);
MDC.SelectObject(pb);
bp.DeleteObject();
0110デフォルトの名無しさん
NGNGあなた(=プログラマー)は、使用人(=オブジェクト、例えばMDC)に
ロッカー(=Windowsサービス例えばデバイスコンテキスト)に荷物を
預けて来いと命令できます。(=例えばMDC.CreateCompatibleDC(pDC))
すると使用人(=MDC)は、ロッカーを操作して(=もろもろのWinAPI)、
鍵(=ハンドル)を手に入れます。
すると今度はあなた(=プログラマー)は、荷物をロッカーから出せという命令
(=例えばMDC.SelectObject(&bp))が使えるわけです。使用人(=MDC)が
鍵(=ハンドル)をもっていますから。
0111デフォルトの名無しさん
NGNG> SelectObjectは前に持っていたオブジェクトへのハンドルを渡すみたい
それが勘違い。MSDN か MFC のソース読みましょう。
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNGそれは、MFCの汚い面の現れだな・・・
Windows API をラップしてるだけだから。
Windows API を学ぶべし。
#このあたりは OWL や VCL の方が綺麗で好きだ
0114デフォルトの名無しさん
NGNGMFC がきれいじゃないのは同意だが、今回の問題は全然関係ないぞ。単に
CBitmap* CBitmap::SelectObject(CBitmap*)
と宣言されてるだけの話。
#あまりズレた返答は Borland 厨の烙印を押されかねんので、気をつけてくれ。
0115デフォルトの名無しさん
NGNGMDC.SelectObject(&bp)が返すのは
MDCが管理するデバイスコンテキストに直前まで選択されていた
同種のGDIオブジェクト、つまりビットマップを管理するCGdiObjectのアドレス。
CGdiObjectクラスは、Win32 GDIオブジェクト(ビットマップ)への
ハンドルをメンバ変数として所有していて、
ハンドルを使ったAPI呼び出しを、クラスのメンバ関数をとおして
利用できるように設計されてるわけだ。
CBitmap *pbに CGdiObject *のポインタを代入しているけど
このとき、CBitmap*はCGdiObjectから派生したクラスへのポインタなので
自動的に、ポインタの型が変換されて正しく代入される。
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGthanks!出来ました。
ついでにVC++初心者(cは多少判る)にお勧めの参考書あったら
教えたってください。
付属のはわかりづらい
0118デフォルトの名無しさん
NGNG最初のステップだけでもいいよ。
0119113
NGNGCDC::SelectObject のソース追ってみて、動作を理解した。
SelectObject ひとつで、これだけ大変なことやってたんだ。。。
0120デフォルトの名無しさん
NGNGMFCの前にSDKプログラミングをやってみれ。
深いとこまでやらなくても、
MFCを理解する助けにはなる。
0122初心者
NGNGすごい質問ですが、SDKってMFCと何が違ってなんなんですか?
0123初心者
NGNG大きなBMPの一部分だけを読み込む方法ってありますか?
CBitmap bp,*pb;
CDC MDC;
bp.LoadBitmap(name);
MDC.CreateCompatibleDC(pDC);
pb=MDC.SelectObject(&bp);
pDC->BitBlt(0,0,100,100,&MDC,0,0,SRCCOPY);
MDC.SelectObject(pb);
bp.DeleteObject();
のような風に、BilBltで表示範囲を指定しても、元のBMPは全体が読まれているわけですよね?
これだと、たとえば640*480の画面にスクロールして動いていく画像を出したいと思って、
640*3000くらいの画像を作って(x,y)から(x+640,480)まで描画させるなどとしても、やっぱり元の大きな画像を読み込んでからになるんですよね?
やってみたら、ものすごい動きが遅かったんで・・・
どうすればいいのかな
0124デフォルトの名無しさん
NGNGMFC を使わず、Win32 API だけを使ってプログラミングすることを指して、SDK
プログラミングと呼ぶ(人もいる)。
>>123
毎回ビットマップを読み込んでるわけじゃなくて、一度だけ読み込んで、それを複数回
BitBlt() してるんですよね? それだと、遅いのはファイルの読み込みではなく BitBlt()
自体じゃないかな。
DirectX を使って構わないのなら、DirectDraw, あるいは Direct3D を使って、ビデオ
メモリ上に画像を置いてしまうのが最速かと。
0125デフォルトの名無しさん
NGNG>>122に対する返答に対して
ってことは、SDKというのはMFCのような特別なクラスみたいなものは存在しないのですか?まったく巣のままAPIを使うだけなんですか?
「(人もいる)」って?
0127デフォルトの名無しさん
NGNGhttp://hata.cc/docs/Win32/1-2-3.html
http://kokoto.pos.to/Service.htm
ATLの奴は俺も良く分からん
0128デフォルトの名無しさん
NGNGそうそう。自分で WndProc を書いて、WinMain で
1 RegisterClass して
2 CreateWindow して
3 GetMessage(), TranslateAccelerator(), TranlateMessage(), DispatchMessage()
からなるメッセ―ループをぐるぐる回す
というプログラムを書く。
「人もいる」と書いたのは SDK プログラミングと言う用語が、それほどいい名前だと
思ってないし、一般的でもない気がしたから。あまり気にせんで下さい。
0129デフォルトの名無しさん
NGNGあまり流行りそうには見えないが、意図してる事は分かりやすいかと。
0130初心者
NGNG毎回ロードしないようにしようとしたんですがうまくいきません。
CBitmap bp,*pb;
CDC MDC;
bp.LoadBitmap(name);
MDC.CreateCompatibleDC(pDC);
pb=MDC.SelectObject(&bp);
pDC->BitBlt(0,0,100,100,&MDC,0,0,SRCCOPY);
MDC.SelectObject(pb);
の、bp.LoadBitmap(name); の部分だけを一回実行するだけにしたんでは駄目なようですが、どうすればいいのでしょう?
MDC2に元画像を一度だけおいて、そこからMDCに転送して、色々描画してから実際に画面に出力するようふうにしてみたらできるかと思ってやってみましたが、これも何か違う部分でうまくいきませんでした。
0131デフォルトの名無しさん
NGNG関連する部分のコードを抜粋して出してみ。
> bp.LoadBitmap(name); の部分だけを一回実行するだけにしたんでは駄目なようですが、
少なくとも >>130 のコードではそれが分からんよね。どうやって「一回だけ」実行する
ようにしたのか、それが分かる程度に編集してね。
0132初心者
NGNGえっと、CBlockView::OnDraw(CDC* pDC)のなかに、上記のようなコードを書いて、bp.LoadBitmap(name); はif文で一回だけ実行するようにしました。
アニメーションさせる(画像を移動させていく)のでタイマーを使って常に一定間隔で再描画するようにしています。InvalidateRectで。
0133デフォルトの名無しさん
NGNGコード抜粋しなよ。口で説明するより、実物を見たほうが早い。
0134初心者
NGNGBOOL first=TRUE;
void CBlockView::OnDraw(CDC* pDC)
{
CBlockDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: この場所にネイティブ データ用の描画コードを追加します。
CDC MDC;
MDC.CreateCompatibleDC(pDC);
CBitmap bp, *pobp;
if (first){bp.LoadBitmap(bmpback);first=FALSE;}
pobp=MDC.SelectObject(&bp);
pDC->BitBlt(0, 0, 800, 600, &MDC, 0, 0, SRCCOPY);
MDC.SelectObject(pobp);
}
のような形です。これが繰り返されます。(本当はこの後表示位置を変数で置いて色々したい)
0135初心者
NGNGああ、なんか空白部分が変になってしまった、、、
0136デフォルトの名無しさん
NGNGああ、それだとダメです。
CBitmap bp, *pobp;
CDC MDC;
はいずれも OnDraw() メソッドのローカル変数として定義されていますから、
OnDraw() から抜けた瞬間に無効になります(次に OnDraw が呼ばれたとき
には、前回の値は残ってません)。
#これは VC++ に限らず C/C++ の基本中の基本なので、少し C++ の基本的な
#書籍を読んだほうが良いです。
ビットマップを描画しておく CDC 変数をメンバ変数にして、
1. OnCreate() あたりでビットマップの読み出しと描画を行っておく
2. OnDraw では、そのメンバ変数を使って BitBlt する
のが良いかと。あと MFC スレが別にあるので、MFC に関してはそちらで聞いた
方が詳しい人がつかまると思います。
0137初心者
NGNGありがとうございます、、、、、
ちょとやってみます
0138デフォルトの名無しさん
NGNG自分で実装するの考えると頭痛くなるんだけど慣れてる
人はそうでもないのか?
0139デフォルトの名無しさん
NGNG0140初心者
NGNGありがとうございます、解決しました。無事動くようになった様です。
0141初心者
NGNGCDC MDC
////
////
////
iro(MDC,mona.x,mona.y,mona.xx,mona.yy,128,0,0);
MDCをGetPixelで使うのでCDC MDCを第一引数に取ったんですが、こうすると
1 番目の引数を 'class CDC' から 'class CDC' に変換できません。
と言われてしまいます。何故でしょう?
0142乗換初心者
NGNGVBでいうところの、DoEvents()
BCBでいうところのApplication->ProcessMessages();
(待ちループの間、他のアプリケーションに制御を渡す)
っていうのはVCではなんと書けばいいんすか?
0143デフォルトの名無しさん
NGNG関数 iro の宣言を見せてみ
0144デフォルトの名無しさん
NGNGMDCが登場する部分と周辺
int iro(CDC MDC,int x,int y,int xx,int yy,int red,int green,int blue)
{
struct color{
int r;
int g;
int b;
}ref;
COLORREF CRefBuf;
CRefBuf= GetPixel(MDC,x,y);
ref.r = GetRValue(CRefBuf);//R
ref.g = GetGValue(CRefBuf);//G
ref.b = GetBValue(CRefBuf);//B
***
***様々
***
}
0145初心者
NGNG初心者。また、名前を入れ忘れた。スマソ
0146デフォルトの名無しさん
NGNGHDC hdc, // デバイスコンテキストのハンドル
int nXPos, // ピクセルの x 座標
int nYPos // ピクセルの y 座標
);
だよ。
0147デフォルトの名無しさん
NGNGMFCは詳しくないけど、
CDC にはコピーコンストラクタがないんじゃないかね。
CDC& にしてみそ。
0148初心者
NGNGえ!?何がおかしいんですか?上のやつ、普通に関数じゃなくて直接(OnDrawなんですけど)書き込んだら正常に実行でたんですけど・・・。引数で渡そうとするとおかしく・・・
0149デフォルトの名無しさん
NGNG>>128の3
0150デフォルトの名無しさん
NGNGこれも
CRefBuf= GetPixel(MDC,x,y);
↓
CRefBuf= MDC.GetPixel(x,y);
0151初心者
NGNGあ、はい。
0152初心者
NGNGできちゃいました。ありがとうございます、、、
0153初心者
NGNG0154デフォルトの名無しさん
NGNGダイアログベースでBMPを読み込んでウィンドウに表示はできたのですがその読み込んだbmpを
unsigned char image[3][i][j]の配列に入れたいのですが、どのような式が必要でしょうか?
bmpがはいってる変数はm_bmpBitmapで変数のタイプはCBitmapです
0155デフォルトの名無しさん
NGNGいさましいチビって誰?
0156デフォルトの名無しさん
NGNGunsigned char の配列って、256色限定ですか?
読み込んだBMPがたまたまフルカラーだったらどうします?
0157デフォルトの名無しさん
NGNGで配列に入れることを考えてます.モノクロで無いとそれを加工する式が思いつかないので。
初心者なもので状況説明がうまくできなく申し訳ありません.
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNGニュースで取り込むと、インデントも崩れないよ。
CBitmap bm;
if( bm.LoadBitmap(IDB_BITMAP1) == 0 ) {
// エラー処理
}
BITMAP bm_info;
if( bm.GetObject( sizeof bm_info, &bm_info ) == 0 ) {
// エラー処理
}
CDC dc;
if( dc.CreateCompatibleDC(NULL) == 0 ) {
// エラー処理
}
CBitmap *old_bm = dc.SelectObject( &bm );
if( old_bm == NULL ) {
// エラー処理
}
TRACE("%d %d\n", bm_info.bmWidth, bm_info.bmHeight);
unsigned char image[3][256][256];
for( int y = 0; y < bm_info.bmHeight; y++ ) {
for( int x = 0; x < bm_info.bmWidth; x++ ) {
COLORREF col = dc.GetPixel( x, y );
image[0][x][y] = GetRValue(col);
image[1][x][y] = GetGValue(col);
image[2][x][y] = GetBValue(col);
TRACE("%02x %02x %02x\n", image[0][x][y],image[1][x][y],image[1][x][y]);
}
}
dc.SelectObject(old_bm);
0160159
NGNG0161乗換初心者
NGNGって処理ループを書かなきゃならんのすか?
vbやbcbみたく、1行で済ませて楽する方法はないのでしょか?
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG実際に第2引数のバッファには文字列が設定されているのですが、途中で切れた文字列になっています。
終端文字列(NULL)も付いていないようです。
ヘルプやいろんなサイトを検索してみましたがどうしても分かりません。
だれかご存知の方、ご教示お願い致します。
ソースは下記です。
BOOL SelectFolderDialog(const HWND& m_hWnd, const CString& strTitle, const CString& strDefaultFolder, CString& strSelectFolder)
{
BOOL nFuncRet=TRUE;
BROWSEINFO bi;
TCHAR szDir[1024];
LPITEMIDLIST pidl;
LPMALLOC pMalloc;
TCHAR szDefaultFolder[_MAX_PATH];
strcpy(szDefaultFolder,strDefaultFolder);
if (SUCCEEDED(SHGetMalloc(&pMalloc))){
ZeroMemory(&bi,sizeof(bi));
bi.hwndOwner = m_hWnd;
bi.pidlRoot = 0;
bi.lpszTitle = strTitle;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lParam=(LPARAM)szDefaultFolder;
bi.lpfn = BrowseCallbackProc;
pidl = SHBrowseForFolder(&bi);
if (pidl){
if (SHGetPathFromIDList(pidl,szDir))
strSelectFolder=szDir;
pMalloc->Free(pidl);
pMalloc->Release();
}
else
nFuncRet=FALSE;
}
return nFuncRet;
}
// SelectFolderDialog()の再帰関数
int CALLBACK
BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lp, LPARAM pData)
{
switch (uMsg)
{
case BFFM_INITIALIZED:
if(pData!=NULL)
SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)pData);
default:
break;
}
return 0;
}
0164デフォルトの名無しさん
NGNGIShellFolder の GetDisplayNameOf は?
0165デフォルトの名無しさん
NGNGすいません、ニュースって何ですか?
0166デフォルトの名無しさん
NGNGSONYのワークステーション。
0167デフォルトの名無しさん
NGNGnews://toc.dyndns.org/2ch.pc.tech
> 勘違いしてた。ニュースでもインデントがつぶれてたね。
あ、すんません、つぶれなくしましょうか?
今はブラウザと見え方をなるべく合わせようとして
連続するスペースをひとつのスペースで置き換えてます。
0169デフォルトの名無しさん
NGNGありがと
>168
おねがいします。
えっと、あと159のプログラムを貼り付けると配列に取り込めるんですか?
(たとえば、ボタンを作ってそれにメッセージハンドラのコード追加のところにかく)
それと、このプログラムはリソースに登録しといたBmpをよみこんでますよね?
リソースに登録していないファイルから読み込んだbmpにもそのままでつかえるのでしょうか?
0170奈々Cさん
NGNGがあったら、ポインタで結構ですから教えていただけないでしょうか。
やりたいことは、HTMLからURLを渡されたらサーバからデータを引っ張り、処理
結果をIEの画面の一部(あるいは全部)に描画するものです。
ネスケのplug-inなら理解できるのですが、IEでActiveXとなると難しいですの
で。
よろしくお願いします。
0171奈々Cさん
NGNGVBは扱えませんので・・・。
0172デフォルトの名無しさん
NGNGでもオブジェクトは生きてる。
オブジェクト指向やっててよかった
0173デフォルトの名無しさん
NGNGATLのチュートリアル(多角形を表示するもの)を見れ
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNGポインタで結構?
じゃあ、
char *activex;
これでいいね。
0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNGCComPtr<IWebBrowser2> pWebBrowser;
0179デフォルトの名無しさん
NGNGabcdefgというデータでテストすると
ある程度時間たつと受信データが乱れます
順番が変わったり、受信しなかったりすることあります
Sleepで待ち時間を設定すると正確に受信できる時間が
伸びますが、結局は受信データが乱れます。
何が原因なのでしょうか?
ハード的に限界があるのでしょうか?
0180デフォルトの名無しさん
NGNG助けてプリーズ。
0181デフォルトの名無しさん
NGNGtry {} catch (...) { MessageBox(NULL, "死んだごめん。", NULL, MB_OK | MB_APPLMODAL); exit(1); }
で囲んでおけば?
0182デフォルトの名無しさん
NGNGとりあえず、コンパイラのメッセージの未初期化なんとかってやつ、
全部調べ直せ。
0183デフォルトの名無しさん
NGNGWindowsでスタックを食いつぶした場合って、どうなってしまうのでしょうか?
試しにちょっと無茶をさせてみた所、計算終了後、5分くらいは何の変化も
なかったんですが。その後、エラーメッセージもなく突然PCが落ちました。
スタック食いつぶしが原因かどうかもよく分かりません。
0184デフォルトの名無しさん
NGNGNT系のWindowsで同じこと試してみな。
0185デフォルトの名無しさん
NGNG環境は一応Windows2000なんです(T-T)
なにか俺、見逃してるっぽいですね…
0186デフォルトの名無しさん
NGNGSPを探してみたところ、MSのHPにSP5があったのですが、
Wideband-FullとFullがあります。
何が違うのでしょうか?どちらがお勧めですか?
0187デフォルトの名無しさん
NGNG初心者なのなら、そのままにしといてもいいんじゃ?
0188デフォルトの名無しさん
NGNGこういうのはどうしたら良いんでしょうか?
ウェブを検索したらそれで困っている人がいくらか引っかかった・・・。
0189デフォルトの名無しさん
NGNG>>182読め
0190デフォルトの名無しさん
NGNGなんとなく気になった!
0191デフォルトの名無しさん
NGNGフロー制御していないに一票
>190
理屈上できないはずが無い
0192デフォルトの名無しさん
NGNGBMP画像を配列に格納する方法がわからないのですが,
モノクロ画像をunsigned char image[x][y]に格納するにはどのようにコードを書けばいいのでしょうか?
ボタンをつくり関数を追加してそこにメッセージハンドラを記述する形でコードを書く形です.
又,その逆に配列にしたものをBMPに戻すにはどのようにすればよろしいのでしょうか?
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG>test.exe "c:\windows\" 123
とやると、
期待する解釈:
argv[1]→ c:\windows\
argv[2]→ 123
実際:
argv[1]→ c:\windows\" 123
となってしまう。こういう場合って、自分でパーサ作らないと駄目?
0195194
NGNG期待する解釈:
argv[1]→ c:\windows\
argv[2]→ 123
実際:
argv[1]→ c:\windows" 123
0196>>194
NGNGとやれば良いに1票
0197デフォルトの名無しさん
NGNGWinAPIのGetOpenFileName()を用いて複数ファイル名を
取得するにはどのようにすればいいですか?
0198194
NGNGそりゃ、そうだが。そういう入力があったときの話し。
0199196
NGNGユーザは argv[1] = c:\windows" 123 を期待しているのだから
それで問題なかろう。そういう仕様なんだから。
194のプログラムだけが仕様を改善(?)しても、
他のプログラムと一貫性がなければ、ユーザにとっては改悪やん。
0200超初心者(*゚ з゚; ポ
NGNG(c=(j>0)?buf[--j]:getc(fp))!=EOF)
ちなみに
int j;
char buf[100];
FILE *fp です。
特に「?」とか「:」とか判りません。
よろしくお願いします!
0201194
NGNGはぁ、そういう見方もできるわけだね。世の中広いわ。
でも、普通は
>copy "c:\windows\" d:
みたいに使うでしょう。実際、これで動くわけだから。
0202デフォルトの名無しさん
NGNGC(C++?)にもそういう構文があるんだ・・・
Perlならおなじみだけど。
0203デフォルトの名無しさん
NGNGマジレス。
その本は捨てた方がいい。
0204デフォルトの名無しさん
NGNG>でも、普通は
>>copy "c:\windows\" d:
>みたいに使うでしょう。実際、これで動くわけだから。
copyはそれでは動かんよ。やってみろ。
0205デフォルトの名無しさん
NGNGはcopy使ったこと無いヴァカ。
0206デフォルトの名無しさん
NGNGif(j>0){
j = j-1;
c = buf[j];
}else{
c = getc(fp);
}
if (c!=EOF) ...
0207超初心者(*゚ з゚; ポ
NGNGありがとうございます!そんな意味だったんすか!
むずかしい。。。でも判りました!
>>203
Cのリファレンス的本はこれしかモッテないんす。。。
捨てられません(^^;
0208デフォルトの名無しさん
NGNGすいませんBMP2種類あるってBMPの種類ですか?
読み込み方ですか?種類ならよくわからないんですが、読み込み方はリソースにもとからBMPを割り当てたやり方です。
どうか、よろしくおねがいします。
>以前も質問したのですがVCで
>BMP画像を配列に格納する方法がわからないのですが,
>モノクロ画像をunsigned char image[x][y]に格納するにはどのようにコードを書けばいいのでしょうか?
>ボタンをつくり関数を追加してそこにメッセージハンドラを記述する形でコードを書く形です.
>又,その逆に配列にしたものをBMPに戻すにはどのようにすればよろしいのでしょうか?
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNGBITMAPFILEHEADERやDIBをキーワードにサーチエンジンで調べてみよう。
BMP内にモノクロビットマップがカラーテーブルで格納されているなら、
その値を持ってくるだけ。フルカラーRGBならBMPに記録されているピクセ
ル列のRGBの一つをそのまま読み込めばよい(ただし4バイト境界に注意)。
BMP内に記録されているピクセル列の位置は、BITMAPFILEHEADERを参照。
0211211
NGNGWindowsのデスクトップとかで出来るやつです。
onMouseDownとMoveの間に四角をかくと途中の線も書いてしまって汚い。
0212デフォルトの名無しさん
NGNG途中の線消せよ。
0213デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNG人からもらったプロジェクトなんですが、これを開いてコンパイルするとincludeファイルが見つけられないエラーが続出です。
これをくれた人は自分の環境ではちゃんとコンパイルできていると思うのですが、何故かうまくいきません。
具体的には、ユーザー定義のヘッダで、ファイル自体はあるし、プロジェクトにも追加されてます。
仕方がないので#include "aaa.h"を#include "aaa\aaa.h"の様に打ち変えてコンパイルしてます。
これでコンパイルは出来るのですが、いまいちスマートではないですよね?
こういうケースはみなさんどのように対処してますか?
0216デフォルトの名無しさん
NGNG0217Kusakabe Yokaichi
NGNGまだプログラマとは言えないレベルですね。
0218デフォルトの名無しさん
NGNG同じ図形を2回XORで描画すると元に戻ることを利用すると楽ちん。
0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGメイクファイルって自動で吐き出せないんでしょうか?
0222デフォルトの名無しさん
NGNG[プロジェクト]->[メイクファイルのエクスポート]
0223211
NGNG>>218ありがとう!
onMouseMoveに以下を書いた。
if(m_bLButtonDown )//ドラッグされたら・・・
{
//描画準備
CDC *pDC = GetDC();
//Rectを定義し、FocusRectを描く
CRect Rect;
Rect.SetRect(m_dx,m_dy,point.x,point.y);
Rect.NormalizeRect();
pDC->DrawFocusRect(Rect);
//前に描いたやつを消す
Rect.SetRect(m_dx,m_dy,m_x,m_y);
Rect.NormalizeRect();
pDC->DrawFocusRect(Rect);
//消すポイントをとっておく
m_x = point.x;
m_y = point.y;
ReleaseDC(pDC);
}
0224デフォルトの名無しさん
NGNGNT4では動くぞ。
0225デフォルトの名無しさん
NGNGメインウィンドウ hMainWnd を得たい。が、トップレベルウィンドウとして
複数列挙される。そこから hMainWndを区別する方法として、どんなものが考えられます?
キャプションで判断すると今一つ確実でないし、クラス名(#32770)で判断すると、
オーナーNULLのメッセージボックスと区別がつかない。GetParentでも区別できない。
なんか、FAQっぽいけど、ご教授願います。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGVC作成中はReleaseの下にexeがあり、ユーザーの環境では直接置かれる。
どうやるのが正しい一貫性のあるやり方でせう?
今はGetCurrentDirectory()を使っているが
ルートディレクトリにインストールされたりするとC:\
と最初に\がついてうまく動かない場合あり。
0228デフォルトの名無しさん
NGNGCString strAppDir; // アプリケーションが起動されたディレクトリ
TCHAR szFull[_MAX_PATH];
TCHAR szDrive[_MAX_DRIVE];
TCHAR szDir[_MAX_DIR];
::GetModuleFileName(NULL, szFull, sizeof(szFull) / sizeof(TCHAR));
_splitpath(szFull, szDrive, szDir, NULL, NULL);
strAppDir.Format(_T("%s%s"), szDrive, szDir);
CString strINIfile;
strINIfile = strAppDir + _T("hogehoge.ini");
0229デフォルトの名無しさん
NGNGRelease/Debug用のiniファイルをおいとけ。
\は自分でなんとか処理すれ。
0230デフォルトの名無しさん
NGNGThanks
ドライブとディレクトリを分割するのか・・・。結構面倒ですね。
しかしこれだとiniファイルをReleaseの下に作ってしまわないでせうか?
開発時はReleaseの下には作りたくない・・・のだがそれはワガママ?
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNGそれぞれ置くのは混乱するのでパス。
\は漢字コードの2バイト目とかもあり、スマートな処理が面倒そうなのです。
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG_mbsleadとか_tcsleadの使い方を覚えなさい。
0236デフォルトの名無しさん
NGNGそれって検索しても見つからないぞ。自作の関数か?
0237デフォルトの名無しさん
NGNGMSDNで探してくんろ
0238デフォルトの名無しさん
NGNGCreateFileで開いてからサイズ調べてGlobalAllocしてそこに全部一気にReadFileするのと、
ファイルマッピング使ってマップするのと
どっちが(効率とか速さとか考えると)良いのでしょうか?
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGただ読んで表示するだけなら、ファイルマッピングに一票
0241デフォルトの名無しさん
NGNGデバッグ時のカレントディレクトリを弄らないのか
小一時間問いつめるYO
0242デフォルトの名無しさん
NGNGデバッグ用のexeを置くディレクトリをソースと同じところにしろ、と言ってる?
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGカレントディレクトリの問題じゃないのだが。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGいちいちDebugとかReleaseとか面倒だから同じディレクトリにして、
ファイル名変えたら?Debug版はhogehoge-d.exeみたいにd付けるとか。
0247デフォルトの名無しさん
NGNGいたわってあげよう!
0248デフォルトの名無しさん
NGNG>iniファイルをexeと同じディレクトリに保存したい
と言って
>GetCurrentDirectory()を使っている
そうなので、案外そうかも。
0249デフォルトの名無しさん
NGNGiniファイルを2つ作りたくないから。
ディレクトリを同じにすれば確かに解決するがあまりスマートな方法ではないと思うが。
>>247,248
質問読んでそれぐらいの認識もできない?
レベルの低い奴からはその程度の回答しか得られんな。
0250デフォルトの名無しさん
NGNG繰り返し再生したいのですがうまくいきません
どうしたらいいのでしょうか?
Wave再生APIとかを使わないとうまくいかないのでしょうか?
OSはWin98です
0251247
NGNGカレントディレクトリのiniファイルを見に行け。
デバッグ時もリリース時も作業用のディレクトリを
ソースと同じディレクトリ(かテスト環境用のディレクトリ)に
しておけ。
iniファイルは一つで済む。
VBのApp.Pathみたいのを期待しているようだが、
「実行モジュールと同じディレクトリのiniファイル」を見に行くのは
VB厨のやり方だ。
0252デフォルトの名無しさん
NGNG> 質問読んでそれぐらいの認識もできない?
煽るな。
俺には書き方が悪いようにしか見えん。何をやりたくて、何を避けたいのかのトレードオフが
分からんぞ。
1 exe と ini ファイルを「常に同じ」ディレクトリに置きたい
2 ini ファイルを複数用意するのは嫌だ
ってのが前提条件なら、そりゃ exe を同一ディレクトリに置くしかないだろ。状況によっては
1 を譲歩して良いが 2 は譲歩できん、ということなら、「状況」と「譲歩」について、詰めて書
け。それはキミにしか判断できないことだ。
#書いてないけど、exe のフルパスを取得する方法はわかってるよね?
0253デフォルトの名無しさん
NGNG現在の状況はそうなっている。
>>252
確かに書き方が悪かったのは認める。
1 ユーザーの環境では常にiniファイルをexeと同じディレクトリに置きたい。だが
2 開発中の環境ではソースが置いてあるディレクトリにiniを置いて
ReleaseとDebugのexeで共通に読み込みたい。
exeの置いてあるディレクトリに置くのは>>228で教えてもらった
GetModuleFileName()を使えばできる。が、これでは 2 が解決しない。
カレントディレクトリに置くようにすれば同時に解決するが
"C:\" とかのルートディレクトリレクトにインストールされると
通常、"C:\Program Files\foo" とかにインストールされた場合と
異なり、最後に "\" がつくので特殊な処理がいる。
ルートだけ処理を加えればいいが、日本語のディレクトリや
ネットワークにインストールされた場合、矛盾しない処理方法が分からない。
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGディレクトリ名つけずにファイル名だけで open すれば飯竹だよね。謎だ。
>>253
> 開発中の環境
これとユーザの環境の区別を、どうつける? 俺が考えつくのは、
1. インストール時にインストーラで特定の値をレジストリに書き込む
2. その値が書いてあればユーザ環境、なければ開発環境と見なす
とか、
1. 開発環境にはカレントディレクトリに特定のファイルを置いておく
2. そのファイルが存在すれば開発環境、しなければユーザ環境
ってところだが、いずれにせよマーフィーの法則により
1. 開発環境では問題が出ない
2. ユーザに渡した主観、ユーザ環境でのみ使うコードにバグが見つかる
ことが保証されているから、やめたほうが良いと思う。
0256デフォルトの名無しさん
NGNGプログラムの起動時のカレントを記憶している。
0257デフォルトの名無しさん
NGNGおもしろいな、お前のプログラム
0258デフォルトの名無しさん
NGNGなるほど・・・。
ファイル処理の後に全部戻せばいいのか。
だがそれだと、深い所に保存したファイルに何度もユーザーが触る時に不便だろう。
ただ、Win2000あたりからアプリが前回の最後のディレクトリを覚える仕様に
変わった?のでよく分からんのだけど。
余談だがVC++ではプロジェクトを切り替えてもディレクトリが前回のプロジェクトのまま、
とかなって不便なのだが。
0259デフォルトの名無しさん
NGNGファイルのオープン中にも画面の書き換えが発生すると
所定の位置のデータベースを読みに行く仕様なので。
0260デフォルトの名無しさん
NGNG開発中はDebugだけでテストすりゃいいんじゃ?
0261デフォルトの名無しさん
NGNG速度が違いで発生するバグとかに対処するため普段はReleaseで動かしてる。
Debugは問題が発生した時の追跡のみに使用。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGで、カレントディレクトリはころころ変えるな。
0265デフォルトの名無しさん
NGNG初めていいこと言った
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNGどこが悪いのでしょうか?
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
HWND hWnd;
MSG message;
WNDCLASSEX wc;
wc.hInstance = hInstance;
wc.lpszClassName = "DDraw";
wc.lpfnWndProc = WndProc;
wc.cbSize = sizeof(WNDCLASS);
wc.style = 0;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL, IDI_WINLOGO);
wc.lpszMenuName = NULL;
if(!RegisterClassEx(&wc))
return 0;
hWnd = CreateWindow(
"DDraw",
"DirectDraw",
WS_OVERLAPPEDWINDOW,
300,
200,
200,
200,
HWND_DESKTOP,
NULL,
hInstance,
NULL);
ShowWindow(hWnd, nShowCmd);
UpdateWindow(hWnd);
while(GetMessage(&message, NULL, 0, 0)){
TranslateMessage(&message);
DispatchMessage(&message);
}
return message.wParam;
}
0268デフォルトの名無しさん
NGNGLRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message){
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
0269デフォルトの名無しさん
NGNGエラーを報告白やヴォケ
俺の予想としてはHWND_DESKTOPって何打?ってかんじ。ペアレントがなぜペアレントを持つのかってかんじ。
0270デフォルトの名無しさん
NGNGwin32_debugとかwin32_nodebugとかあるし
自分で作って設定してもいいし・・・
0271デフォルトの名無しさん
NGNGRegisterClassEx() に失敗してるやん。return 0 で終わらせずに MessageBox()
でエラーメッセージぐらい表示しとけよ。
WNDCLASSEX 使うなら wc.cbSize のサイズが間違ってる。
0272デフォルトの名無しさん
NGNGってなってるんですけど
PASCALってなんですか?
0273デフォルトの名無しさん
NGNG0274Kusakabe Youichi
NGNG> int PASCAL WinMain(hInstance,hPrevInstance,lpszCmdLine,cmdShow)
> ってなってるんですけど
> PASCALってなんですか?
マニュアルに書いてありますよ。(ちゃんと買ったものなら)
0275デフォルトの名無しさん
NGNG0276てんさいぷろぐらむぁ(偽) ◆8Fck5JHo
NGNG1:WNDCLASSEXのcbSizeが間違ってる。
sizeof(WNDCLASS)は間違い。
sizeof(WNDCLASSEX) か sizeof(wc)に変更
2:hIconSmが設定されていない。
WNDCLASSにはないけどWNDCLASSEXにはhIconSmがある。
現在のやり方では構造体の初期化をしているわけではないので、大変イケナイ値が入っている。
>>269
HWND_DESKTOPはNULLで定義されていたような。
デスクトップを親にもつウインドウ(トップレベルウインドウ)のような抽象化をする為に
HWND_DESKTOPがあるものだと思っているのですが・・・
0277269
NGNG初耳。ありがとう。
0278デフォルトの名無しさん
NGNGMSDN Library 引きましょう。
今は PASCAL は obsolete だから WINAPI を使うのが推奨されてるけど。
0279267
NGNGなんとか解決できました。
0280デフォルトの名無しさん
NGNG普通だと思うが。もし箱売りのソフトならレジストリ使わないとWindowsロゴ取得で
ひっかからないか?
ReleaseとDebugを同じディレクトリにするのがスマートじゃないとか言ってるけど、
その根拠も示されてないし。なんか、ただのわがままにしか見えない。
そもそもGetModuleFileNameを知らなかったり、パス解析で悩むようなレベルだから
仕方ないのかもしれないが。あと質問してるくせに偉そうだし。レベル低いくせに。
_splitpathを面倒とか言ってたけど、このスレに書くために押したキーの回数よりも
ソースに_splitpathを追加する方がよっぽど少ないと思うが。
マルチ言語化とか考えてるなら、パス解析はAPIのパス関数を利用するのが一番安全。
ただしWin98以降限定になってしまうが。
調子に乗ってマルチ言語化してると台湾あたりから中国語でお礼とかバグ報告が来る
危険も伴なう諸刃の(以下略)。っていうか読めないっつーの。しかも中国人の書い
た下手な英語は中国語よりもわけ分からん。
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNGまぁまぁ。死体に鞭打ちうつなって。
0283デフォルトの名無しさん
NGNGシリアル通信で、DCB構造体のfAbortOnErrorをTRUEにしても
エラーのときに処理を中断しないんです(FALSEと変わらない)。
Win2000だと設定通り動くんだけどWin98でやったらこうなってしまいます。
同じような人いませんか?どっちでもいいんだけどなんか気持ち悪いです。
0284デフォルトの名無しさん
NGNG指定したファイルをZIPファイルに圧縮するプログラムを作りたいんですけど
zip32.dll、Unzip.dllをロードするのはわかるけど、肝心の関数がどういうもの
か?
GetProcAddress()で何を呼び出せばいいかわからない。
サンプルがあれば誰か教えてください。
0285デフォルトの名無しさん
NGNGライブラリやヘッダ付いてなかった?
0286デフォルトの名無しさん
NGNGそれ落とすべし。
0287デフォルトの名無しさん
NGNGlibファイルはありますがhファイルが無し。(それで困ってる)
DLLだけでもLoadlibrary()を使えばOKと思いますから。
0288デフォルトの名無しさん
NGNGん?ちゃんと付いてたぞ。
0289デフォルトの名無しさん
NGNGfor (int i = 0; i < 5; ++i);
for (int i = 0; i < 5; ++i);
これがコンパイルできないんですけど普通ですか?
0290デフォルトの名無しさん
NGNGFAQだ
0291デフォルトの名無しさん
NGNGi の2重定義ですな。 フツーフツー。
0292デフォルトの名無しさん
NGNG今3があたっていますが、これって古いですか?
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG0296284
NGNGどこのWebか教えてください。
0297デフォルトの名無しさん
NGNG例外処理 (初回) は ***.exe (KERNEL32.DLL) にあります: 0xC0000005: Access Violation。
というメッセージがいっぱい出ます。
これってこういうものなんですか?
特別なことはしてないつもりですが CHtmlView が例外出しまくりです。
それと表示しているHTMLのリンクをクリックするとブラウザが起動してしまいます。
CHtmlView 内に表示したいんですがどうしたらいいですか?
0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNGCString str = "aaaa";
char c = str[0];
0302デフォルトの名無しさん
NGNGCString str = "AAAA";
char *s = (LPTSTR)(LPCSTR)str;
0303デフォルトの名無しさん
NGNG0304syosinsya
NGNGMCI_OPEN_PARMS open;
MCI_PLAY_PARMS play;
open.lpstrDeviceType = "Sequencer";
open.lpstrElementName = name;
mciSendCommand(0, MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, ( DWORD )&open );
mciSendCommand(open.wDeviceID,MCI_PLAY,MCI_NOTIFY,( DWORD )&play );
のようにして再生できたのですが、連続再生がうまくいきません。
色々調べてみたところ、メッセージが送られたら、MCI_SEEKで戻す、というようにすればいいとのことでしたが、
その、MCI_SEEKで戻す、というのの具体的方法がわかりません。
上記のようなソースを元に関数化したいと思っているのですが、毎回呼び出される事に、はじめから再生するようにするにはどうすればいいのでしょう?
0305( _ 。。) _ バタ。
NGNG#define LPTSTR unsigned short*
って安直な考えはしちゃいけなかったのか…(汗)
>>304
MM_MCINOTIFY のメッセージをトラップして
mciSendCommand(open,MCI_SEEK,MCI_SEEK_TO_START,(DWORD)&prm);
で先頭に戻してもっかいPlayを叩き込んで終りです。
あ。念の為にSEEK前にStop噛ました方が良いかな?
0306305(ミス修正)
NGNGかな? 304さんの定義を使うとこうですな。 ~~~~~~
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG(キーボードのスペースを押すとクリックになるみたいなやつ)
全然方針が立ちません。
情報持っている方がいらしたら、是非教えてください。
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGできるんですか?
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNGとなっていますが、98ではSendInput使っても動かないんですよね?
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNGC++で実装して説明している書籍教えて
0316デフォルトの名無しさん
NGNG0317( _ 。。) _ バタ。
NGNGMSDN読むべし、SendInputの項目、最後の方に
Windows NT/2000:Windows NT 4.0 SP3 以降
Windows:Windows 98
ヘッダー:winuser.h 内で宣言
インポートライブラリ:user32.lib を使用
<< http://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_sendinput.htm >>
>>314
INPUT as;
as.hi.uMsg;
as.hi.wParamH;
as.hi.wParamL;
as.ki.dwExtraInfo;
as.ki.dwFlags;
as.ki.time;
as.ki.wScan;
as.ki.wVk;
as.mi.dwExtraInfo;
as.mi.dwFlags;
as.mi.dx;
as.mi.dy;
as.mi.mouseData;
as.mi.time;
as.type
とりあえず、全部列挙してみたが…割り込ませるイベントの内容を記述するらしいな。
#KeyIvent / MouseIvent / じゃあ、hiって何のイベントだろ…(汗
0318デフォルトの名無しさん
NGNGお前はホントにWindows2000の"OSの勉強"がしたいのかと問いたい。
問い詰めたい。小一時間、問い詰めたい。
0319デフォルトの名無しさん
NGNG「Windows2000 アーキテクチャ徹底解説」
Windows2000 の実装まはやってないけど。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGCPPって、プリプロセッサの話?
ANSI準拠してれば、どっちがどうとかってあんまり関係ないような気が。
処理系依存部分の優劣が問いたいのだろうか。
0322デフォルトの名無しさん
NGNGあるじゃないですか?買うならどっちかなって。
基本的にどちらが優れているか知りたいです。
0323デフォルトの名無しさん
NGNG判断基準が示されていないので、判断しようがありません。
「金閣寺と東京都庁があるじゃないですか? 観光するならどっちかって?」
知るかよ。
0324デフォルトの名無しさん
NGNGRubyに決まっているだろっ!
0325デフォルトの名無しさん
NGNGC言語を#execしろYO!
#最近、セキュリティーの関係上 ダメなサーバー多いけどさ
0326デフォルトの名無しさん
NGNG何らかのファイルがドラッグ&ドロップされたとき、
それを無視して別のファイルを開きたい場合に
どうしていいか判りません。つまり以下のようにすると、
#include <windows.h>
#include <cstdio>
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(0,lpCmdLine,"コマンドライン引数",MB_OK);
if(FILE *fp=fopen("./hoge.txt","r")) {
fclose(fp);
MessageBox(0,"ファイルの読み込みに成功しました.","OK",MB_OK);
} else {
MessageBox(0,"ファイルの読み込みに失敗しました.","ERROR",MB_OK);
}
return 0;
}
単体で起動すれば普通にhoge.txtを開いてくれるのですが、
何らかのファイルがドラッグ&ドロップされた場合、
つまりコマンドライン引数が存在する場合はhoge.txtを開いてくれません。
どなたか知恵を下さい。
0327デフォルトの名無しさん
NGNGてきとーにSetCurrentDirectoryしろ。
0329デフォルトの名無しさん
NGNGアプリケーションが起動されたときのカレントディレクトリ=.exeのある
ディレクトリだと勘違いしてない?
0330326
NGNGさっきそうではないということと、
GetModuleFileName()なるものの存在を知りました。
てきとーにSetCurrentDirectoryを試み中です。
0331326
NGNG下のようにしてカレントディレクトリのセットは出来たのですが、
相変わらず何らかのファイルをドラッグ&ドロップして起動すると
hoge.txtが開いてくれません。更なる知恵を・・・。
char mpath[1024]; // 実行ファイルのパス名を入れるバッファ
GetModuleFileName(0,mpath,1024); // 実行ファイル名混みのパス名を取得
// パス名の後ろからサーチして最初の\まで(つまり実行ファイル名)を削除
int i = strlen(mp)-1; while (mp[i]!='\\') --i; mp[i] = '\0';
SetCurrentDirectory(mpath);
if(FILE *fp=fopen("./hoge.txt","r")) {
fclose(fp);
MessageBox(0,"ファイルの読み込みに成功しました.","OK",MB_OK);
} else {
MessageBox(0,"ファイルの読み込みに失敗しました.","ERROR",MB_OK);
}
0332デフォルトの名無しさん
NGNG_splitpath()でGetModuleFileName()の結果を分解して、_makepath()で結合
しなおすのが良いかと。
0333326
NGNGどうもです。
char c_mp[1024]; // 実行ファイル名混みのパス名を入れるバッファ
GetModuleFileName(0,c_mp,1024); // 実行ファイル名混みのパス名を取得
string mpath = c_mp; // とりあえずstringに。
s.erase(mpath.rfind('\\')); // おしりから\を探してそれ以降(つまり実行ファイル名)を削除
string readfile = mpath+"/hoge.txt"; // うぉんちゅう。
で出来ました。ありがと〜。
とりあえずファイルをドラッグした場合はカレントディレクトリが変わるということと、
ファイル操作には絶対パスが必要なときがあるということを勉強しました。m_ _m
0334デフォルトの名無しさん
NGNG0335味噌醤油醸造株式会社
NGNG1.自分自身の.EXEファイルの名前には漢字を使わない。
2.漢字のファイル名にrenameされたときはあきらめる
ということでいかがでしょうか.
0336デフォルトの名無しさん
NGNGそんな運任せなんて……
0337326
NGNGそうかぁ。でもそれを考え出すととても面倒そうなので
いずれまた考えることにします。
# VisualC++の相談というかWindows上でのCの相談でした。
# すみませんです。
0338デフォルトの名無しさん
NGNGおいおい。このぐらいで手を抜くなよ...
1 あたまから \ を探していって(ただし _ismblead() を使ってマルチバイト文字の一バイト目なら飛ばす)、
一番最後の \ を見つける。
2 UNICODE 化してしまう。string ではなく wstring を使えば、悩まなくて良い。
とか、いくらでも手はあるぞ。
0339326
NGNGwstringの使い方がまだよく判っていないのと
_ismblead()がcygwinで見つけられなかったので
_splitpathを使ってみました。表表.exeみたいな実行ファイルでも
うまくいってるみたいです。
char c_mp;
char c_drive[3], c_dir[256], c_file[256], c_ext[256];
_splitpath(c_mp, c_drive, c_dir, c_file, c_ext);
string mpath = c_drive; // とりあえずstringに。
mpath += c_dir; // ディレクトリ名を付けて
string readfile = mpath+"/hoge.txt"; // 出来上がり
0340デフォルトの名無しさん
NGNGGetStockObject(SYSTEM_FONT) で取得したフォントはどういうわけかサイズがあいません。
かなり大きめのフォントが返ってきます。
教えてちょんまげ!
0341デフォルトの名無しさん
NGNGSP5が正解。
0342味噌醤油醸造株式会社
NGNGメニューのフォントって、MS UIゴシックじゃなかった?
(自信無し)
0343デフォルトの名無しさん
NGNGGetパラメーターイんふぉ(なんとか)って関数で取得できた気がするが。
MSDN参照
0344デフォルトの名無しさん
NGNGCMyViewクラスのメンバ変数とか外部変数を
他のクラスで呼び出したり、値を代入するには
どうすればいいのでしょうか?
逆は出来るんだけど・・・
0345ppp
NGNGC言語の本に
/*--- BitmapToRgb --- 画像変換(Bitmap画像からRGB画像へ)----------------------
hBitmap: 入力Bitmap画像
pr: 出力R画像
pg: 出力G画像
pb: 出力B画像
-----------------------------------------------------------------------------*/
void BitmapToRgb(HBITMAP hBitmap, unsigned char pr[120][160],
unsigned char pg[120][160], unsigned char pb[120][160])
{
HANDLE hDB;
unsigned char *pdr, *pdg, *pdb, *ps, *ps0;
LONG i;
pdr = (unsigned char *)pr; pdg = (unsigned char *)pg;
pdb = (unsigned char *)pb;
hDB=GlobalAlloc(GMEM_MOVEABLE, (DWORD)160*120*4);
ps = ps0 = GlobalLock(hDB);
GlobalLock(hBitmap);
if (bitspixel == 16) { /* 16ビット/画素のフレームメモリ */
GetBitmapBits(hBitmap, (DWORD)160*120*2, ps0);
for (i = 0; i < (DWORD)160*120; i++) {
/* GGGBBBBB RRRRRGGG G成分が6ビット */
*pdb++ = (*ps << 3) & 0xf8;
*pdg = (*ps++ >> 3) & 0x1c;
*pdg++ = *pdg | ((*ps << 5) & 0xe0);
*pdr++ = *ps++ & 0xf8;
/* GGGBBBBB *RRRRRGG G成分が5ビット
*pdb++ = (*ps << 3) & 0xf8;
*pdg = (*ps++ >> 2) & 0x38;
*pdg++ = *pdg | ((*ps << 6) & 0xc0);
*pdr++ = (*ps++ << 1) & 0xf8;
*/
}
}
else if (bitspixel == 24) { /* 24ビット/画素のフレームメモリ */
GetBitmapBits(hBitmap, (DWORD)160*120*3, ps0);
for (i = 0; i < (DWORD)160*120; i++) {
*pdb++ = *ps++; *pdg++ = *ps++; *pdr++ = *ps++;
}
}
else if (bitspixel == 32) { /* 32ビット/画素のフレームメモリ */
GetBitmapBits(hBitmap, (DWORD)160*120*4, ps0);
for (i = 0; i < (DWORD)160*120; i++) {
*pdb++ = *ps++; *pdg++ = *ps++; *pdr++ = *ps++; *ps++;
}
}
GlobalUnlock(hBitmap);
GlobalUnlock(hDB);
GlobalFree(hDB);
}
0346ppp
NGNGこれをボタンに割り当ててメッセージハンドらのコードに加えると
ローカル変数の定義がおかしいと出るのですがどのように変更すればいいのでしょうか?
0347デフォルトの名無しさん
NGNGまずC++の勉強から始めれ
0348デフォルトの名無しさん
NGNGNONCLIENTMETRICS ncm;
ZeroMemory(&ncm, sizeof(NONCLIENTMETRICS));
ncm.cbSize = sizeof(NONCLIENTMETRICS);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0);
で ncm.lfMenuFont を見ればわかると思う。
0349デフォルトの名無しさん
NGNG作成したのですが、誤ってコントロールパレットを消してしまい
新しくボタンを追加したりできないので、再び表示させる方法
を教えてください。
0350デフォルトの名無しさん
NGNG「コントロール」という項目を選択する。
0351349
NGNGありがとうございます。
おかげで表示できるようになりました。
メニューの所全部調べてもパレット表示の項目がなかったんで
困っていましたが、右クリックツールバーを表示させればよかったわけなんですね。
でも最初違うウインドウを開いていたので、コントロールパレットが表示されませんでした。
このへんがちょっと混乱させられました。
まだVC++使い始めで付属の入門の本見ながらやってたんですが、
これで再開できます。
0352ppp
NGNGお分かりになる方、どうかご教授願います。
0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGそれは問題ないと思う。
0355デフォルトの名無しさん
NGNGボタンに割り当てた部分のコードとか、どのローカル変数の定義が
どうおかしいと言われたのかを書いた方がいいかと。
0356ppp
NGNGコードは下記のようになっています。ONCL2がボタンのBnClickedの変数です。
void CVcpictView::OnCl2()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
*--- BitmapToRgb --- 画像変換(Bitmap画像からRGB画像へ)----------------------
hBitmap: 入力Bitmap画像
pr: 出力R画像
pg: 出力G画像
pb: 出力B画像
-----------------------------------------------------------------------------*/
void BitmapToRgb(HBITMAP hBitmap, unsigned char pr[120][160],
unsigned char pg[120][160], unsigned char pb[120][160])
{
0357Kusakabe Youichi
NGNG本物の書いた本でも読んでみてはいかがでしょう?
0358Kusakabe Youichi
NGNG> どうやら、あなたはCの初歩からやり直す必要があるようですね :)
> 本物の書いた本でも読んでみてはいかがでしょう?
本物とは?
0359ppp
NGNG根本的に間違っているのでしょうか?
できたら、その個所の指摘をいただけたらうれしいのですが、
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG0362bou
NGNGLoadBitmapというのは、メモリに特定の画像を転送するようなものだと認識していますが、これをしないと、”キャンパス”自体が作られないように見えます。
このキャンパスに対して別のところから描画してみてもまったく表示されません。なので、LoadBitmapで100*100ほどの白紙を読ませて実験してみたところ、
別のところから描画したものは100*100だけ描画されました。
LoadBitmapというのはキャンパス(受け皿)のようなものも作るのですか?
だとしたら、一旦MDC(CDC)に描画してからpDC.BitBltするような場合は一度希望の大きさの白紙を読ませないといけないのでしょうか????
0363デフォルトの名無しさん
NGNGオーバーロード関数の呼び出しを解決することができません」とかぬかしやがる
んですが、これってフツーですか。
namespace FOO {
void foo( int ch );
void foo( const char *s );
}
using namespace FOO;
using FOO::foo;
int main()
{
foo( "abc" );
return 0;
}
0364デフォルトの名無しさん
NGNGusing namespace FOO;
using FOO::foo;
この2行のどちらかをコメントアウトしてみよ〜
0365デフォルトの名無しさん
NGNGあと文法上は問題ないが、ポインタと int を引数に取る関数の多重定義はやめたほうが
身のためと思われ。
0366363
NGNGうーむ、やはり両方の using 宣言を混在させることはできませんか。
これは、C++ の規格上ダメなんでしょうか。それとも VC++ 独自の
問題?
>>365
らじゃ。引数として 0 を与えたときの曖昧性のことですね。
0367デフォルトの名無しさん
NGNG関数パラメータのデフォルト値に変数が使えない理由を知りたいです。
例えばブール変数をメンバに持ったクラスでトグル用のメンバ関数を定義するとき、
気持ち的には以下のようにしたいのです。
class my_bool {
public:
bool elem;
bool toggle(const bool& b!=elem) { // (*1)
// 引数が指定されればelemを引数の値にセット
// 引数が指定されなければelemを反転した値にセット
elem = b;
return elem;
}
};
もちろんこれは(*1)のところでエラーがでます。
これが可能ならば上のような操作を簡潔に書けてハッピーなのですが、
デフォルト値に変数が使われると何かまずいことがあるのでしょうか?
0368367
NGNGbool toggle(const bool& b=!elem) { // (*1)
でした。!=が=!
0369中学2年生
NGNG最近C++を勉強し始めたばかりなので間違っていたらすみません。
引数が省略されたときの値がコンパイル時に決まっていないとコンパイラが困るからじゃないですか?。
> // 引数が指定されればelemを引数の値にセット
> // 引数が指定されなければelemを反転した値にセット
混乱しそうな仕様ですね。
0371367
NGNG369辺りに
『VisualC++の質問じゃなかったですね。すみません。C++相談室に炒ってきます。』
とポストしたはずだったんですが・・・。
0372367
NGNGブール値をスイッチするtoggle()という関数のデフォルトの動作として
値を切り替える。もし値が明示的に指定されたならばその値に切り替える、
というのは感覚的には自然な気がするのですが・・・。
> 引数が省略されたときの値がコンパイル時に決まっていないと
> コンパイラが困るからじゃないですか?。
そういうもんなんでしょうか。
とりあえず今のところそういうもんだということで納得しておきます。
失礼こきましたです。
0373デフォルトの名無しさん
NGNG頭悪すぎ。専用にSet関数作れ。
あとパラメータ渡したときとそうでないときの動作を変えたかったら
別々のtoggle関数作れ。
0374デフォルトの名無しさん
NGNG感覚的に不自然
0375デフォルトの名無しさん
NGNG1つの関数に複数の機能もたせるのヤメレ
0376いっぱいいっぱい
NGNGコンパイルしようとすると、
自動データセグメント+ヒープの大きさが64キロを越えています。
とのエラーが出ます。
どこがまずいのでしょうか?
困っています。どうかご教授ください。
0377デフォルトの名無しさん
NGNGメモリモデル設定するオプションがあるはずだから、
さがして、ラージモデルとか、でかそうな名前のメモリ
モデルに変更してください。
0378デフォルトの名無しさん
NGNG変数うんぬんの前に!=で代入はやめれ。
0379デフォルトの名無しさん
NGNGというか、代入になってないし
コレが仮に動いたとして…
どうやって「引数が指定されているかどうか」を判断できるんだ?って問題だし
いやいや、まてまて…それ以前にconstに代入するつもりか?
まあ、>>371 を見る限り、C++相談所に行ったよーなので この話は終りかな。
#C++ソウダンジョ…コイツノメンドウハタノンダゾ。
0380いっぱいいっぱい
NGNGご教授お願いします。
0381デフォルトの名無しさん
NGNG1.0なんて、手元にないからわからないよ。
メニューにオプションって項目ない?
0382いっぱいいっぱい
NGNG一応オプションという項目はあるのですが、その中にそれらしい
ものがないので。プロジェクト、デバッグ、ディレクトリ、エディタ、
ワークスペース、ツール、カラーという項目が入っています。
このうちのどれかにあるんでしょうか?
よろしくお願いします。
0383デフォルトの名無しさん
NGNGヘルプで、メモリモデルって検索できない?
1.0使ってたのは、何年も前だから、まったく覚えてないよ。
0384いっぱいいっぱい
NGNGどうにがんばってみます。ご教授ありがとうございました。
0385デフォルトの名無しさん
NGNG普通に関数の返り値でエラーかどうか判別すればいいんじゃないですか?
例外をスローするメリットが分かりません。
それどころか例外を捕まえて例外を破棄(?)しないとメモリがリークするらしいのでウザイと思います。
それ以外(特にMFC)は便利だと思います。
例外をスローする関数なんて自分は絶対作りません。
以上です!
0386デフォルトの名無しさん
NGNGそのころは統合環境つかってなかったから
わからないけどコンパイラのオプション指定の
辺りにないかな?後、リンカもべっこで指定
するんじゃないかな?
以上手元に無いので6.0から推測しました。
コマンドラインなら
cl -ms a.c
とか
cl -ml a.c
って指定するんだけどなぁ。
0387Kusakabe Youichi
NGNG> 普通に関数の返り値でエラーかどうか判別すればいいんじゃないですか?
「かえりち」と読むのですか?
0388デフォルトの名無しさん
NGNGメニュー「オプション」−「プロジェクト」でダイアログが出て
「コンパイラ」ボタンで、左側の「カテゴリ」にメモリモデルがある。
0389デフォルトの名無しさん
NGNGファイル操作なんかで使わない?
0390デフォルトの名無しさん
NGNGtry {
hoge1();
}
catch(...) {
エラー処理
}
try {
hoge2();
}
catch(...) {
エラー処理
}
try {
hoge3();
}
catch(...) {
エラー処理
}
0392デフォルトの名無しさん
NGNG0393いっぱいいっぱい
NGNGどうもありがとうございます。
いろいろ試してみます。
>>388さん
アドバイスありがとうございます。
ですが、私はVer1.0を使用しています。
教えてくださった通りにやってみましたが、
ダイアログの中に、「コンパイラ」が見当たりません。
0394デフォルトの名無しさん
NGNGVisualC++のSocketAPIではIPv6ってサポートしてるのでしょうか?
0395デフォルトの名無しさん
NGNGDDKでドライバを書く
0396デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/portguid_2pde.asp
0397質問
NGNG0398394
NGNG・・・。
>>396
ありがとうございます。
・・がんばって読みます。
0399デフォルトの名無しさん
NGNG例えば GetLongPathName は Win95 に対応していませんが
Win95 で GetLongPathName を使った場合どうなりますか?
1.起動しない
2.APIのところでアプリが落ちる。
3.APIが失敗するだけ
4.その他
いずれにしろ正常に動かないわけですから Win95 では使えないとユーザーに警告する必要はあると思うのですが・・・
ユーザーのOSが分からない場合(オンラインソフトの場合)一般的にどのOSを対象にプログラムを作るべきですか?
Win95 に対応していないAPIは結構あるように見えますが Win95 ユーザーは切り捨てていいですか?
Win95 を使ってるユーザーなんて未だにいるもんですか?
0400デフォルトの名無しさん
NGNG>ユーザーのOSが分からない場合(オンラインソフトの場合)一般的にどのOSを対象にプログラムを作るべきですか?
OSバージョンチェックの方法は、検索したら出てくると思うよ。
0401デフォルトの名無しさん
NGNGうちのWebサーバーのログを見てると、95の人はほとんどいないみたい。
企業内で使われてるPCは95が割と残ってるという話もあるけど、
ネットからソフトを落とそうなんて人は、95は使ってないんじゃないの?
0402I'm Win95.
NGNG試してみた。
「欠落エクスポート KERNEL32.DLLGetLongPathNameA にリンクされています」
「システムに装着してあるデバイスは、動作していません」
うーん、合掌。
俺は、LFNに変換する時は、APIの FindFirstFileを使っている。
APIの OSごとの挙動を報告するスレみたいなの、誰か作らん?
0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNGいや、それが分からないもんだよ。
最近出くわした所では、例えば VirtualUnLockは、
Windows 95/98/Me: Included in Windows 98 and later.
となっているが、
95でも「欠落エクスポート〜」のエラーにならず、起動できてしまう。
何で Windows 98 and later なんて書くんだ yo!
そもそも、9x系はこの APIは何もしないんだから、何で Unsupported に
しないんだ yo! VirtualLockは Unsupported と書いてあるのに。
まぁ、このあたりの挙動は、システム DLLのバージョンによるところが大きいのかもね。
0405デフォルトの名無しさん
NGNGWin2000+ADSLの環境でIPアドレスを取得したいのですが、
LAN内のIPアドレスが返ってきてしまい、WAN側?(インターネット側)の
IPアドレスを取得することが出来ません
ご存じの方取得方法をご教授ください よろしくお願いします
0406デフォルトの名無しさん
NGNG取得できんはず。NATやめるか、外側にリフレクタを置い
てIPを知らせてもらえば?
0408デフォルトの名無しさん
NGNG汎用性もクソもないけど。
0409405
NGNGそうなんですか 流石に汎用性が無いのは困りますね
Win2000標準のipconfig.exeを使えばちゃんと表示されるんですけど
どうやってIP引っ張ってきてるんでしょうね...
0410デフォルトの名無しさん
NGNGとか、無いですかね?
セキュリティ記述子だの、ACLだの、トークンがどうのだの...
訳が分からない。
0411しいたけ
NGNG画面に文字を表示させたいのですがエディットボックスを作るプログラムがわかり
ません。msdnコレクションを見たりもしてるんですが、何が何だかさっぱりわかり
ません(T_T)わかる人がいたら教えてくださ〜い。
0412デフォルトの名無しさん
NGNGまず、ソースは以下です(test.cpp, test.exe とします)。
#include <iostream>
#include <fstream>
using namespace std;
int main(int c, char **v) {
istream *in = new ifstream(v[1]);
int ch;
int count = 0;
for(ch = in->get(); !in->eof(); ch = in->get()) {
count++;
if (count == 50) {
cerr << in->tellg() << endl;
count = 0;
}
cout << (char)ch;
}
return 0;
}
また、以下の内容のファイルを作って
*** 改行コードを LF にして ***
保存しておきます(in.txtとします)。
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
dddddddddd
eeeeeeeeee
ffffffffff
hhhhhhhhhh
iiiiiiiiii
jjjjjjjjjj
kkkkkkkkkk
0413412続き
NGNGで、
$ test.exe in.txt 1>sout.txt 2>serr.txt
とすると、sout.txtは、
aaaaaaaaaa
bbbbbbbbbb
cccccccccc
dddddddddd
eeeeeeeeeeeeeeee
ffffffffff
gggggggggg
hhhhhhhhhh
iiiiiiiiiiii
jjjjjjjjjj
となっていました。
予定では in.txt と sout.txt の内容は同じになるはずだったのです。
in->tellg()の行をコメントアウトすれば、期待通りの動作をします。また、
in.txtの改行コードを CRLF にしても期待通りの動作です。
デバッガでみたところ、tellg()によってなぜかファイルポインタが少し前のところに
戻っているようです。
また、VC付属のものの代わりにSTLPortを使ったところ、tellg()の有無に
関わらず期待通りの動作をします。
これは使い方が悪いのでしょうか?それともVC付属のライブラリのバグ
ですか?
0414デフォルトの名無しさん
NGNGダイアログバーではDoDataExchangeは呼ばれないんですよね?
どうすればいいのでしょうか?
0415デフォルトの名無しさん
NGNGGUIなど使っていないプログラムで、ReleaseとDebugでコンパイルした
場合に挙動が違うんですが、同じプログラム書いていて挙動が違くなる
原因って一般的にはどんなことがあるんでしょうか。。。
宜しくお願いします。
0416デフォルトの名無しさん
NGNGGUI なアプリでも同じこと。
たとえばメモリを初期化せずに使っているとか、
解放したあと、まだそのメモリを参照してしまっている…とか、
まぁ、いろいろあるよな。
0417415
NGNGデバッグ版だと初期化すべきところでしてなくても、
勝手に初期化してくれる(配列を零で初期化してくれるとか)ということが
あるということですか?
0418デフォルトの名無しさん
NGNG初期化してない変数を使った。
ReleaseとDebugでごみの値は違うことが多い。
0419デフォルトの名無しさん
NGNG初期化しない変数は、何が入ってるかわからない。
DebugとReleaseで入っている値が違うということ。
0421デフォルトの名無しさん
NGNGどうでもいいがモノスゴイ被り様だな。
0422デフォルトの名無しさん
NGNGfor(i=0 ; i<num ; i++)
{
if(item[i] == 0)
{
MessageBox(hwnd , "バグってるぞ!" , "オラオラオラ!!" , MB_OK);
}
}
#endif
といった具合にプリプロセッサでデバッグモードのときだけエラーを表示させているんですが
#ifdef _DEBUG の部分を "_" を書き忘れて #ifdef DEBUG とかやっててリリースモードで実行中に
メッセージボックスがでてビビリまくりな時があります。
#ifdef _DEBUG の記述を間違えてもコンパイラはエラーを出さないため
逆に恥ずかしいバグを発生してしまうことがあります。
#ifdef _DEBUG を間違わずに書く方法ってないですか?
デバッグモードの時だけコードが有効になって記述ミスした場合コンパイルでエラーか警告が出るようなやり方希望です。
0423デフォルトの名無しさん
NGNGスタティックテキストのくぼみが、スクリーンセーバー解除後に
消えてしまいます。他のWINDOWで一度遮ってやると復活します。
FillSolidRect等を使って背景を描画しているみたいなのですが、
何が考えられるでしょうか。
0425デフォルトの名無しさん
NGNGusertype.datに_DEBUGなどのキーワードをを登録しておくという方法はなかなか有効だったりする。
ただしやりすぎるとdatが1万行を軽く越えるけど。
0426デフォルトの名無しさん
NGNGconst bool DEBUG = TRUE;
//...
if(DEBUG)
{
HOGE();
}
みたいなのをプログラミング作法では推奨してたな。
0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNGVC++6では、最適化で削ってくれる。
他のコンパイラでも、このくらいやってくれると思う。
0429デフォルトの名無しさん
NGNGじゃなくって
#if _DEBUG
にでもすれば?
0430デフォルトの名無しさん
NGNGEDITViewを基本クラスにして、メニューバーから
選択してFromViewを開く方法がわかりません。
プロジェクト追加しないといけないのですか?
0431デフォルトの名無しさん
NGNG??FromViewってなんだ?何かの派生クラスか?
0432デフォルトの名無しさん
NGNGCFormViewでしょう。
0433431
NGNGダイアログボックスじゃ駄目なのか?
0434430
NGNGまだ先頭にCをつける癖すらついていません。
あれからいろいろやってみて、ダイアログボックス
なら開いた。という状態に持ってこれたのですが、
ダイアログボックスのID_EDITに入力された内容を
ボタンを押して、親ウィンドウに反映されるには
どのようにしたらよろしいのですか?
一部表現が変ですけど、ご容赦ください。
0435万年カレンダー
NGNGy:年、m:月、d:出力する日付、n:マスの番号、l:最後の日
#include<stdio.h>
void main()
{
int y,m,d=1,w,n=1,l;
printf("年=");
scanf("%d",&y);
printf("月=");
scanf("%d",&m);
printf("[ %d年%d月 ]\n",y,m);
printf(" 日 月 火 水 木 金 土\n");
printf("---------------------\n");
if(m==1 || m==2){
y--;
m=m+12;
}
w=(y+y/4-y/100+y/400+(13*m+8)/5+d)%7;
if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12){
l=31;
}
else if(m==4 || m==6 || m==9 || m==11){
l=30;
}
else{
if(y%4==0 && y%100!=0){
l=29;
}
else if(y%400==0){
l=29;
}
else{
l=28;
}
}
for(w;w>0;w--){
printf(" ");
n++;
}
for(d;d<l+1;d++){
printf("%3d",d);
if(n%7==0){
printf("\n");
}
n++;
}
printf("\n");
}
閏年の判定がおかしい
else-ifもうまくいかない
0436デフォルトの名無しさん
NGNGスタックからメモリを確保するのでメモリが断片化することなく嬉ピーです。
関数内で可変長のメモリが必要なときに重宝しております。
0437デフォルトの名無しさん
NGNGID_EDITってのはエディットボックスのIDか?
そうなら、そのIDとCEditあたりを対応させて、入力された内容を拾えばよろしい。
0438デフォルトの名無しさん
NGNGl = 28;
} else if ((y % 100) != 0 || (y % 400) == 0) {
l = 29;
} else {
l = 28
}
0439Kusakabe Youichi
NGNG> if (y % 4) {
> l = 28;
> } else if ((y % 100) != 0 || (y % 400) == 0) {
> l = 29;
> } else {
> l = 28
> }
28と29の2種類しかないのだから、2つに場合わけするか
もしくは4つにわけるかのほうが素直な書き方ですよね。
0440万年カレンダー
NGNG>>438
ifの条件式って0と1以外でもいいの?
0441デフォルトの名無しさん
NGNG0と比較できればなんでもおげ
0442万年カレンダー
NGNGy--; ←これが原因だったみたい
m=m+12;
}
何度も修正してると
どんどんリソースが減っていくのはなぜ?
>>441
なる
0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGCで書かれたプログラムをC++のプログラムから呼ぼうとしていますが
できません。Cのソースは10年前くらいのもので、VCを使って
コンパイルしてオブジェクトファイルを作りました。それを呼ぶ
メインがあるファイルを*.cにするとエラーなしで、*.cppにすると
LNK2001の未解決なんたらが出てリンクができません。拡張子が
違うだけで中身はまったく一緒です。どうしたら
いいでしょう?
0446デフォルトの名無しさん
NGNGC++のリンケージについて勉強する。
0447デフォルトの名無しさん
NGNGだっけ?
0448デフォルトの名無しさん
NGNGでもだめでした。。C++のメインの方では
何かすることありますか?
0449デフォルトの名無しさん
NGNGあるんですが・・ヘッダに定義されてる変数を使おうとしただけで
だめなんです。おかしくないですか?
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNGなにが悪かった?
0452412
NGNG想定しているのはCRLFなファイルだけみたいでした。ftell()が場所を
計算するときに、LFがあると、それは問答無用でCRLFからLFに変換
されたものだとみなされて、2バイト分として扱われていました。
STLPortと挙動が違うのは、VCのほうではpubseekoff()がtellg()のなかで
つかわれていたためでした。
では逝ってきます。
0453デフォルトの名無しさん
NGNGextern "C"{}で囲ってみました。
最初はCのヘッダファイルのほうで定義を同じもので囲ってました。
0454
NGNGhWave=LoadResource(AfxGetResourceHandle(),
FindResource(AfxGetResourceHandle(),
MAKEINTRESOURCE(name),"WAVE"));
LPSTR lpData=(LPSTR) LockResource(hWave);
sndPlaySound(lpData,SND_MEMORY|SND_ASYNC);
UnlockResource(hWave);
FreeResource(hWave);
SND_ASYNC;
SND_LOOP;
のようにしてWAVEファイルを今まで再生していました。これは、リソースに読み込んで(WAVEファイルを)使っていたんですが、
外部のWAVEファイルを、ファイル名を指定する形で用いることはできるのですか?
0455デフォルトの名無しさん
NGNGPlaySound()
0456デフォルトの名無しさん
NGNG0457( _ 。。) _ バタ。 ◆lUd9keO2
NGNGなんとか。 というか、 NT5.2 (だっけ) だから 2000 ベースで考えていいかと。
0458デフォルトの名無しさん
NGNGありがとう。ちなみに7.0はいつ?
0459デフォルトの名無しさん
NGNGWindows 2000 == Windows NT 5.0
Windows xp == Windows NT 5.1
98 と 98SE 程度の違いだ。
>>458
英語版はもうそろそろらしい。
日本語版は一月か二月遅れるだろ。
でも、7.0 から C# がメインになりそうな感じだし、
VC++7.0 ってあんまり意味ないかも。
0460デフォルトの名無しさん
NGNG0461( _ 。。) _ バタ。 ◆lUd9keO2
NGNGあ。 5.1だったか、 フォローサンクス。
>>459
この手の開発系アプリケーションって…
ちゃんとしたヴァージョンアップが5〜6あたりまで続いた後は…
1:無駄な贅肉がついていく(80%)
2:ほとんど変化が無い(30%)
3:まだまだ頑張っている(10%)
のうちのどれかになるよな……。 こぽこぽ。
0462デフォルトの名無しさん
NGNG正直言ってVC++は5.0で実用上全く問題ないレベルなんで、そんなに頑張って
更新しなくてもいいかと。いまだに5.0の人多いし。
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNG> 正直言ってVC++は5.0で実用上全く問題ないレベル
ARM の頃のテクニックしか使わないと問題ないんだが template 使うと辛いこと多いんだよな。個人的
に困ってることを列挙。
1 partial specialization が使い物にならない。
template <typename T, bool Threaded> Allocator {};
template <typename T, true> Allocator {};
template <typename T, false> Allocator {};
とか書きたいことが、しばしば。
あと引数の数を可変にした template メソッドを書く方法もあるんだが、これも parial specialization
が使えないと実装できん。
2 foo<int>(), foo<float>() を呼び分けられない。
3 template<int N> struct X { int n[N]; }; が「要素数 0 の配列を定義している」と怒られて、コンパイル
が通らないケースがある(もちろん N に 1 以上の数を渡してる)。どうもテンプレート化するタイミング
に依存するみたいで、通ることもある。とりあえず n[N + 1] にしておけば回避できる。
4 void 型の関数で return (void型関数) とやると、コンパイルエラーになる。このため std::mem_fun_t()
が void 型のメソッドでは使いものにならない。
0466
NGNGDebug/VCapture.dll : fatal error LNK1120: 外部参照 1 が未解決です。
ってどのライブラリにリンクすりゃいいかなんてどこで調べるんだい?
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNGとか
0470デフォルトの名無しさん
NGNGこれを実行してみたらメニューのところだけへこんでるのですが
他のところと高さを合わせるようにできませんか?
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG0473471
NGNG0474デフォルトの名無しさん
NGNGc:\windows\system32\cmd.exe の実行エラー
って怒られるんですけど、何でシステムファイルの実行エラー?
OSはWin XP使ってます。
0475あ
NGNGどのようにするのが最も簡単でしょうか?
0476
NGNGでさ、コールバック関数(static)内でthisポインタ使いたいんだけど、
パラメータでthis渡せないよね。
どうしたらいいっすかね?
0478デフォルトの名無しさん
NGNGだから、TimerProcにパラメータ渡す方法がねぇってんだろが。
ウィンドウに属さないタイマーの場合、Timerprocが属してるclassを
singleton化してstaticメンバにthis保存するぐらいしか思いつかん。
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNGnIDEvent(SetTimerの2番目の引数)で渡せるっぽい。
SetTimer(NULL,(UINT)this,1000,(TIMERPROC)TimerProc);
とかみたく。
0481デフォルトの名無しさん
NGNGどうしても塗りつぶされてしまいます。どうしたらいでしょうか?
0482デフォルトの名無しさん
NGNGSetBkMode(TRANSPARENT)とかでできんか?
知らんが。
0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNGSelectObject(GetStockObject(HOLLOW_BRUSH))
0485デフォルトの名無しさん
NGNGMFCなら CDC::SelectStockObject(NULL_BRUSH) を呼んでから円を描け
0487教えて君
NGNG開いて、そのダイアログのエディット欄に入力された情報を
OKボタンが押されたときに、View側に反映させたいのですけど、
CXXXDoc.cppに
CXXXDlg dlg;
if(dlg.Create()==IDOK){
m_CurLett=dlg.m_text;
}
と入力した後、
CXXXDoc.hに
// アトリビュート
public:
CString m_CurLett;
と入力してm_CurLettに値を入れるところまで行ったんですけど、
この値をView側に表示させる方法が分かりません。
お願いします。この後どうすれば良いのか教えてください。
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNGアクティブなIEが見ているURLを得る方法って有りますか?
0490デフォルトの名無しさん
NGNGやったことないけど Browser Helper Objects 書けば出来そう。MSDN Library に解説があります。
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG最近 ATL ML で紹介されてた。
http://www.cheztabor.com/toolband/
0493デフォルトの名無しさん
NGNG最初は入門って事でMFC使ってましたが、ゲームのプログラムとかを
作っていると、MFCでは重くて使い物にならないことが分かってきました。
配布するときも、ライブラリ依存になってしまうし......
最近では、SDKばっかりです。皆さんはどうでしょうか?
0494デフォルトの名無しさん
NGNGSDKってWin32APIのことでいいのか?
VCは趣味でゲーム作るくらいだから俺はAPIオンリー。
MFCもそのうちやろうかと思ってはいるが、あまりいい話聞かないし、
普通のアプリ作る予定もないから今のところ永久に保留中。
0495デフォルトの名無しさん
NGNG>配布するときも、ライブラリ依存になってしまうし......
「ライブラリ」ってどれのことだろう。
0496デフォルトの名無しさん
NGNG俺と順番が逆だ。
0497デフォルトの名無しさん
NGNGパーミッションの取得・変更ってどうやるんですか?
ソケットレベルで自分で書かないと無理ですか?
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG個人で書いてるプログラムには ATL/WTL 使ってます。
ATL/WTL はMFC よりも機能的に劣る部分もありますが「API の薄いラッパクラス」という感じで、
ゲームなどを作る場合には向いてると思います。テンプレートライブラリだから DLL の類も不要
ですし。
(唯一の問題は解説が少ないことか。規模が小さいライブラリだからソース読めば良いんだけど)
0500デフォルトの名無しさん
NGNGSearchPathを使ってやりましたがうまくいきません。
よろしくお願いします
0501デフォルトの名無しさん
NGNG分からん!ということなので知ってる人教えてください。
てかVisualStudio6.0ってなんすか?初心者の俺にはC++のソフトに
なぜそのようなもののセットアップガイドがついているのか不思議
でならんかった。
0502デフォルトの名無しさん
NGNG何をしたいのかさっぱりわからん。
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNGそんなもんここで聞くなよ。
字を読みながらボタンをクリックしろ。
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG「じゃあ」ってなんだよ。
くそがき氏ね。
0507デフォルトの名無しさん
NGNG「分散企業システム対応 Windows & Web 高性能システム構築 統合型開発スイート」だそうです。
http://www.microsoft.com/japan/developer/vstudio/
…とマジレスしてみるテスト
0508デフォルトの名無しさん
NGNGマジレス感謝
0509デフォルトの名無しさん
NGNG(SendMessageとかで送れるやつ)を定義したいのですが、
その際気をつけなければならないことってあるでしょうか?
ダブらなければOKかなとも思ったんですがちょっと怖くて。
アドバイスお願いします〜〜m(_ _)m
0510デフォルトの名無しさん
NGNGしらべたよ
0 through WM_USER – 1 Messages reserved for use by the system.
WM_USER through 0x7FFF Integer messages for use by private window classes.
WM_APP through 0xBFFF Messages available for use by applications.
0xC000 through 0xFFFF String messages for use by applications.
Greater than 0xFFFF Reserved by the system for future use.
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG学生手帳とお金と製品を持ってレジへ逝く
0514デフォルトの名無しさん
NGNG心配ならRegisterWindowMessageを使おう。
文字列を与えると、勝手に空いてる番号を返してくれるよ。
ただし、Cではcaseに変数使えないから、通常のswitch-caseを使ったメッセージ
処理が使えなくなるのが痛いが。
0515509
NGNGありがとうございます、MSDNで見てみました〜。
ちょうどC++で記述してるんで使えるようですね。
ふと疑問に思ったのですが、こういう関数があるってことは
異なるアプリケーション間では、たとえ同じ値で定義しても
オリジナルのWindowメッセージを送ることはできないって
ことなのかな・・・・初心者なのでうまくイメージできないけど。
0516デフォルトの名無しさん
NGNGうざいかもしれませんけどお願いします。
visual C をしりたいと思い、教則本を本屋で見たところ、
「こうしたい時はここをこう書き換えて、、、」
とか、「『visual C』というソフト自体の使い方」など
「こうする時は有無を言わさずこうしましょう!」
みたいなことを中心に書かれていて、
いまいちC言語とのつながりがよくわかりません。
C言語も平行して勉強していこうかと思ってたんですが、
もしかして本に書かれている通りにやっていけばいいのだったら
C言語の知識はさほど必要ないのかなぁなんて思ったりしてしまいます。
実際、visual C を勉強する上でC言語は必須なのでしょうか?
厨房的な外れなこと聞いてるのかもしれません。すいません。
0517デフォルトの名無しさん
NGNG作りたくなったら、C言語の勉強したくなるよ、たぶん。
0518デフォルトの名無しさん
NGNGつまり入り口ぐらいはC言語の知識はさほど必要ではないけど
それ以上進む気があるのなら
C言語をしっかりやっといたほうがいいということでしょうか?
自分としては、それなりにvisual Cを学んでおきたいのですが、
それならC言語はみっちりやっといたほうが良いですか?
0519デフォルトの名無しさん
NGNGVisual C++を学ぶならC言語はただの通過点。
壁のレベルとしては路傍の石ころみたいなもん。
0520517
NGNG0521デフォルトの名無しさん
NGNG出来てて当然の物ということですか。
数学する前に九九を覚えとくのが当たり前みたいな?
やっぱり初めからちゃんと勉強しないといけないんですね。
わかりました。怠けずにやろうとおもいます。
ありがとうございました。
0522デフォルトの名無しさん
NGNG今は特に作りたいという物はないんですが
プログラムに少し興味がわいているので、
知識として知っておきたいと思ったんです。
で、やるんだったらさわりぐらいは使えるようになりたいなぁと思いまして。
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNG.NETでいっちゃうの?
0525デフォルトの名無しさん
NGNGVisualC++とC言語は別の言語だと思ってるのではないかと、小1時間問い詰めて
やれって。
>>515
>異なるアプリケーション間では、たとえ同じ値で定義しても
>オリジナルのWindowメッセージを送ることはできないって
>ことなのかな・・・・初心者なのでうまくイメージできないけど。
普通はそれでも構わないけど、それだと同じ値を他のソフトが使っている可能性
があるんで。あまり独自のメッセージを他のアプリケーションに送りつける人は
そういないと思うが、IntelliMouseなんかは最初はそうやってホイールの処理
をしてたよ。もし、勝手に使っている値がそういうのと重複しちゃうと、誤動作
するので注意。
俺はもちろん、そんなAPI使った事ない(笑
0526デフォルトの名無しさん
NGNGっつーか、visual Cなんてプロダクト聞いたことないし。
0527デフォルトの名無しさん
NGNGどのように指示してやればよいのか分かりません。
イメージとしては、テキストだと
「SendDlgItemMessage(hdwnd, ID_TEXT, EM_SETREADONLY, TRUE, 0 );」
と設定すると、グレーになって(当然ながら)入力不可になります。
チェックボックスを上記のようなイメージで使用不可にする方法を
教えてください。
0528デフォルトの名無しさん
NGNGMFC : GetDlgItem(IDC_CHECK1)->EnableWindow(FALSE);
で、いけると思うが。
0529デフォルトの名無しさん
NGNGEnableWindow(GetDlgItem(hdwnd, IDD_CHECKBOX), FALSE)
とか。
0530529
NGNG0531デフォルトの名無しさん
NGNGありがとうございます。
できました。
0532476
NGNGありがと、できたよ。
となると、SetTimerの存在意義って何だろ。
初心者用の関数ですか?
>>480
できなーーい。
マルチメディアタイマで解決したからいいけど、
ほんとにそれでもできるの?
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG偽造学生証とお金と製品を持ってレジへ逝く
0535デフォルトの名無しさん
NGNG0536480
NGNG俺もちょっとはまったんだが、SetTimerの場合、
自分でメッセージループ回さないとコールバックは呼ばれないよ。
SetTimerはあくまでもメッセージを定期的に送ってくれるようにする
ためのAPIだから。
ウィンドウ無くてもGetMessageとかにNULL渡せば来る。
0537デフォルトの名無しさん
NGNGお前は学生の知り合いもおらんのか?
0538デフォルトの名無しさん
NGNG0539Disca ◆NAfP6znE
NGNGハンガリアン記法によれば、ポインタの場合、
p or lp
としているが、どちらが正しいのでしょうか?
LPCTSTR *lpszXXXName;
CWnd *pParentWnd
私が思うに、lpの場合は、文字列で、
p の場合は、その他のポインタって思ったのですが…。
M$のソースみても、あてまはらない事例とかあるし…
お願いします。
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG0542Disca ◆NAfP6znE
NGNGたしか、アカデミックは幼稚園からでも買えるらしい。
私は、2Ch総合スクールに通っていると、モナー証
を見せれば、ネタがわかる店員だったら売ってくれると…
そこらへん、ずさん。
OEMソフトも、メモリだけ購入しても買えるらしい…。
某パソショップでバイトしていた頃に教えてもらった^^;
0543デフォルトの名無しさん
NGNG学生じゃなくなっても使っていいの?
0544デフォルトの名無しさん
NGNG1.画面の明るさ・コントラスト・ガンマ値等を変更する
2.他のソフトウェアによる明るさ・コントラスト・ガンマ値等の変更を許可しない
プログラムを作ってみようと思っていますが、どの辺から手をつければいいのでしょうか?
DirectDraw、Direct3D、ビデオオーバーレイあたりを勉強すればよいのでしょうか?
本屋で何冊か読んできたのですが、ガンマ値等の記述が無かったので質問します。
適当な参考書に心当たりがありましたら、ぜひ教えて下さい。
ちなみに、VC++のレベルはウィンドウを一つ二つ作れるぐらいです。
それから、マルチスレッドを用いてポップアップをたくさん出せます。
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNGファイルポインタは常にファイルの先頭、ですよね?
そうでないことってあるんですか?
0547デフォルトの名無しさん
NGNGレギュラファイルだったらそーだと思う。
多分。
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNGWindows 2000 以降でよければ DnsQuery()
0550デフォルトの名無しさん
NGNGVCでMMXまたはSSIを利用するにはどうすればよいのでしょうか?
0551デフォルトの名無しさん
NGNG{
__asm {
emms;
pxor mm0.mm0;
emms;
}
}
とか?
0552
NGNGでません。これで正常なんでしょうか。
VBの場合は起動時にsp5と表示されます。
0553_
NGNGこれを表示させないで無視するコンパイラ指令みたいのがあったような気がしたのですが分かりません。
教えてください。
0554デフォルトの名無しさん
NGNGただいSTLについてはココも参照
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q167355
0556デフォルトの名無しさん
NGNG正常
0557デフォルトの名無しさん
NGNGその URL、IE6 で見ると何も表示されないんだけど、何が書いてあるの?
もしかして「特定の条件で #pragma warning(disable : 4786) しても C4786 が報告されてしまう」バグに
対する hot fix が出てるのかな。
0558デフォルトの名無しさん
NGNGhtmlのソースから、リンクされているアドレスを抜きたいのですが、
どのような方法でやれば、より簡単に出来るのですか?
よろしくお願いします。
0559デフォルトの名無しさん
NGNG0560544
NGNG>BUG: C4786 Warning Is Not Disabled with #pragma Warning (Q167355)
>STATUS
>Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.
>Last Modifed May 7 2001 2:54PM
と書いてあるだけ。hot fix も何にもねーよ
0562560
NGNGちなみに 560 で 544 と名乗ったがあれ、554 の間違いな。
0563553
NGNGこんな早くお答えしてもらってるとは思いませんでした。
ありがとうございました。表示されなくなりました。
お礼が遅くなってすいません。
0564_
NGNG処理できるようになってないけど、サービスパックをいれるとできるようになるのかな?
0565デフォルトの名無しさん
NGNG次の VC7.NETまでオアズケだよん。
0566_
NGNGやっぱり駄目なのか。ありがとう。
STLやテンプレートを深く勉強しようと思ったけどやめようか。
0567デフォルトの名無しさん
NGNG無視できなくなる可能性があって危険だな
0568あたー!!!!
NGNGが7000円で売ってました。
違法コピーじゃなくて中古みたいだったけど。
買っても大丈夫かなぁ。
0569a.out
NGNG実際アプリはどのように記述すればいいのでしょうか?
snmpを使ったプリンタ監視について御教授願います。
0570565
NGNGそれから Modern C++ Design を読むとテンプレートの
奥義を極めることができるそうだぞ
>>567 SPで言語の振舞いが変るのは勘弁だが、VC6の
言語サポートにも追いついていないSTL周りは
SPできっちり更新して!と思うナリ
0571548
NGNGあとがと
Win9x系,NTでVC++でDNSのMXレコード取得する方法ってないの?
0572デフォルトの名無しさん
NGNGgccはコンストラクタ周りにバグあるし、IC++はデストラクタ周りにバグあるし、
CWやLSI-Cは論外だし。
動作がおかしいんじゃなくて、最初からそういう仕様になっているVC++が一番
癖が少ないと思う。その仕様が中途半端なんだけどさ。
0573デフォルトの名無しさん
NGNG用途による。
PS2 のソフト組むのに VC は使えんし。
0574デフォルトの名無しさん
NGNG俺もVC++使ってるのが一番幸せだと思う。
0575VC++超超初心者
NGNGint main(){
printf("test");
return 0;
}
のようなものを実行するとDosプロンプトが出てきてそこに表示されるのでしょうか?
いまいちどういうことなのかわかりません
0576デフォルトの名無しさん
NGNGただし標準でついてくる STL は捨てた方が良い。SP5 を当てても、まだ致命的なバグが残ってる。
0577デフォルトの名無しさん
NGNGRFC読んで、dns鯖にUDP投げろ。
0578( _ 。。) _ バタ。 ◆lUd9keO2
NGNGネタ…だよな? ネタだって言ってくれっ!
0579名無しの2番
NGNGちなみに現在VisualBASICの方を学んでます。VC++は初心者向けの本が見つかりませんでした。
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNGいっしょ
0582デフォルトの名無しさん
NGNGか、それの解説をしているページって無いでしょうか...
MFCを使うと汚いプログラムでも自分に妥協してしまうので...(爆)
0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNG日本とアメリカの違いってなんですか?
くらい漠然とした質問だ。
答えようが無いぞ。
0585VC++超超初心者
NGNGほんとにはじめたばかりで何もわからないです。
本とか見てもそういうことには触れていませんでした
0586デフォルトの名無しさん
NGNGライブラリの実装が簡単だったからじゃないのか?
別に、Winのコンソールではないウインドウを出す
実装があっても良いし。
0587デフォルトの名無しさん
NGNGじゃあ、お前的には575のプログラムがどういう風に動くと思ってたんだ?
Windowsのウィンドウが表示されてそこに"test"と表示されるとでも思ったのか?
0588Disca ◆NAfP6znE
NGNGVB= 英検2.5級位
って思ったら良いと思われ。(誰かが言っていた。
(言ったその当時は、VCのHowToが無かった時代かな…)
0589デフォルトの名無しさん
NGNGたぶん、>>587の言ってることができると思ったんだろうけど、
>>575はどんな本を読んでるの?
0590デフォルトの名無しさん
NGNG0592VC++超超初心者
NGNG何もわからない初心者なのでなんとも言えませんが、さすがにWindowsのウィンドウが出てくるとは思いません。
でもなんでDos窓が出現するのですか?
>>591
特にその本は何も触れていません。ただ、実行すると、DOS窓がでてきて文字が表示されるっていう事実だけが書いてあったぽい
ていうか、ネタのつもりでないんで誰かマジレスしてほしいです
0594デフォルトの名無しさん
NGNGその exe に
このプログラムは console subsystem を使う
と書いてあるからだと思うが。VC6 だとリンカのオプション /SYBSYSTEM で指定できる。
0595デフォルトの名無しさん
NGNGボタンを使用不可にするにはどうすればいいんですか?
ボタンにメンバ変数を割り当てたのですが、どのコマンドで
使用不可になるかわかりません
0596新年おめでたレス
NGNG0597デフォルトの名無しさん
NGNG始めに何を作ったらいいですか?
ドラクエが作りたいです。
0598デフォルトの名無しさん
NGNGプンプンするぜェェェェェェェ!
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGもう回答出てるけど。
とりあえず、ボタンだろうがエディットボックスだろうが、基本的に
どれもウィンドウである(ウィンドウハンドルhWndを持ってる)という
のを理解する事。
理解したらMFCのクラス図を眺めてみて、なぜCButtonはCWndの派生
クラスになっているのか、CWndとは一体何のクラスなのか、という
のを調べてみるといいだろう。
0601o?
NGNG”特定の計算(比較)結果を返すもの”
ってのは正しいでしょうか?
0602平林雅英著 ANSI C言語辞典より
NGNG既知のもののゆるされた組み合わせに作用し、新しいものを生成する定義された動作。
既知のものがオペランドであり、動作を指定するのが演算子である。
0603VCC
NGNGとりあえずファイル、新規作成、コンソールアプリ、
またファイル、新規作成、C/C++ソースファイルを作り、
#include <stdio.h>
int main()
{
printf("hello");
return 0;
}
を入力F7でコンパイルして、F5で実行これでDOS窓でhelloと表示される、いきなりMFCのスケルトンを使った
アプリも良いけど最初が肝心、if、forとかの基本的な制御文を覚えとかないと後でやるのは大変
0604ウィルス職人
NGNG0605デフォルトの名無しさん
NGNGこれ買え
http://www.amazon.co.jp/exec/obidos/ASIN/4887186215/qid=1009896028/sr=1-4/ref=sr_1_2_4/250-0104051-2828200
0606572
NGNG環境を限定せずに考えて、俺が一番マシなのはVC++だと思うって話。
それを573が厨っぽいレス付けるからおかしな流れになる。
0609566
NGNGどうもありがとうございます。
STLPortをいれてみようと思います。やっぱりVC付属のSTLはなんか少し変ですね。
普通にコンテナ・イテレーター使う分にはいいんですけどね。
Modern C++ Design もテンプレート勉強しようと思ってたので衝動買いしてたんだけど、
まだほとんど読んでません。
ATLに使われていて感心したテクニックがこの本のポリシークラスは関係あるみたいだけど、
VCだとこの本で解説されてる技法のすべては実践できなさそうで少し残念ですが。
はやくVC7.NETがでないかな。でも高そうだけど。
0610デフォルトの名無しさん
NGNG反論を食らうのは、自分の狭い世界でしか通用しない常識を一般化するから。
0611Kusakabe Youichi
NGNG> 演算子の定義ってなんすか?
> ”特定の計算(比較)結果を返すもの”
> ってのは正しいでしょうか?
引用符の向きが違いますね。
0612デフォルトの名無しさん
NGNG0613nana
NGNG0614デフォルトの名無しさん
NGNGstatic linkすれば?
0615デフォルトの名無しさん
NGNG#define _STLP_STATIC
で static link できる。あと SGI iostream ライブラリを使わなければ、そもそもライブラリは不要です。
ヘッダだけで OK。
#define _STLP_NO_OWN_IOSTREAMS
stlport/stl/_site_config.h にオプションが列挙されているから、一度目を通しておくと良いですよ。
0616デフォルトの名無しさん
NGNG0617初心者
NGNGクイックCぐらいしかやったことない僕には何が
なんだか分かりません。マジレス希望です。
0618デフォルトの名無しさん
NGNG0619anal fuck
NGNGクラスか関数かの違いでは?
クラスとは、構造体を拡張したものです。
0621デフォルトの名無しさん
NGNG0622初心者
NGNGビットマップってなんですか〜?(w
0623デフォルトの名無しさん
NGNG0624初心者
NGNGむじゅかしいなあ。。。
0625 ◆ZVA2oc3Y
NGNGVC4.0なので、WinInet.dllからGetProcAddress()でInternetOpenUrl()
をインポートし、使っているのですが‥‥
InternetOpenUrl()を呼んだところで強制的にブレークがかかって
HEAP[Test.exe]: Heap block at 00158DF8 modified at 001591C6
past requested size of 3c6
というメッセージが出てしまいます。
どうやって解決すればよいのか教えてください‥‥
MSのページを見るとメモリリークらしいのです。
0626前すれ924
NGNG924 : :02/01/04 22:42
FAQっぽいけど、、、
system("***.exe a.tex b.tex");
みたいなのをDOS窓を出さずにできる方法はないの?
教えて!
0628デフォルトの名無しさん
NGNGsystem 関数について、もちっと、勉強せぃ。
GUI アプリなら CreateProcess か ShellExecute を使って、直接、起動しろ。
CUI アプリなら、キッパリと諦めろ。
0629VisualC++に乗り換えた腐れ厨房
NGNG「反MS原理主義」を掲げる職場の先輩に付き従って、TurboC++ for Windows で
今まで戦ってきましたが、製造元にも見放されたコンパイラに限界を感じ、遂に
投降しました。
現在、プログラムの変換作業中なのです。
が、TurboC++で使えていた関数がVC6.0では使えなくてエラーと格闘しております。
VCでは次の関数はないのでしょうか?
strncmpi()
jstradev()
またヘッダファイルも無い物があるようです
jstring.h
mem.h
ヘルプファイルを探しても、なかなか見つかりません。ご存知の方いらっしゃいましたら
ご教示ください。
windows2000ならコンソール窓が必要無ければ
CreateProcessでCREATE_NO_WINDOW
_strnicmp _mbsninc が似てたように思うけど 確認して
C++Builderを経由すれば多少苦労が減りそうに思うんだけどなあ
0632デフォルトの名無しさん
NGNGstrncmpi()はだいたい察しがつくが、jstradev()って何する関数?
0633デフォルトの名無しさん
NGNGダイアログに31個のボタンを配置して、押すと「今日は○○日です」とか。
どーすんでしょう?
無策にマウスでオブジェクトをぽちぽち31個置いて、関数も31個作りますか?
それともIDだけ31個作って、ループで回して31個CButton::Createして、OnCommandで仕分けますか?
どちらも面倒・・・と言うか保守性最悪。ボタンが2000個だったらどうしろと。
と言う訳で、何かいい方法ありませんでしょうか?
0634デフォルトの名無しさん
NGNGクリッカブルマップ
0635デフォルトの名無しさん
NGNG早速検索・・・。
0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNG俺には>>634は少々投げやりな意見に聞こえたけどな。
それを読んで飛び出していく方もどうかと思った。
ホントのボタンは1個だけ、マウスの移動につれてそのボタンを動かすというのはどう?
VBでは良く使った方法だけど
0639デフォルトの名無しさん
NGNGそこはそれ、当方初心者ですのでご勘弁を(;´Д`)。
>>638
かなり妖しい方法ですね。考えも付きませんでした。と言うかあり得ないw
でもそれって普通のDOSプログラムとコーディング変わらないんじゃ…。
クリックの割り込みがOnButtonになるだけで(^_^;)。
0640デフォルトの名無しさん
NGNGそれで、「今日は○○日です」って処理だけなら関数は1個で済むだろ。
それだけだ。
クリックして大幅に画面が変わるなら、それこそボタンの絵だけ描いて
クリックされた座標から判定すればいいだけだからさ
0642デフォルトの名無しさん
NGNGprocedure OnMouseDown(Object Sender)
begin
end;
Senderにそのイベントを発行したオブジェクトが入る。
VCにはないのかな?
0643デフォルトの名無しさん
NGNGVCでもできたよーな?
0644デフォルトの名無しさん
NGNG>>640 = >>642 同じ考え
どっちか選べ。
0645デフォルトの名無しさん
NGNG最後の手段として検討させて頂きます。
いや、その手法ですとね。今回は確かに乗り切れるでしょうけど、
将来の為にも、正攻法で考えてみたく。
>>642
有るかもしれない。けど、いくら調べてもわからない(死
button[n] = CButton::Create(); の引数で、別途リソースIDを指定しなきゃなんなくて。
このIDを自動生成出来ればいいんですけど、仕様上無理そうな。
OnButtonで感知出来るのはこのリソースIDだけみたいで、ユニークじゃないと。
実体のアドレスをくれ、アドレスを・・・・・・。
未だ地道に検索中・・・。意地でも手作業でボタンは置きたくないんで。
実際150個弱だから、置いて置けない事は無いけど。
>645
確かにボタンを150個並べても CDialogのメッセージ処理メンバで処理させるから
それはいいと思うんだけど?
でもリソースが少し勿体ないかもしれないよ。 win95とかだと
リソースメータ一挙にふりきらない?
0647デフォルトの名無しさん
NGNG昔話をしよう。
物理学者のファインマンさんの部下はある日を境にぷっつり仕事を上げてこなくなった。
不思議に思ったファインマンさんは部下の部屋に行くと彼は必死になってアークタンジェントを求めるプログラムを書いていた。
「アークタンジャントの表なら物理の教科書に載ってるから貸そうか?」
『いや、どうしてもPCでやりたい。』
その部下はクビになりました。
以前に150個のボタンってインターフェース的に問題がないか?
0648デフォルトの名無しさん
NGNGそれってリソースエディタでボタン150個置いて、関数も150作るって意味で?(^_^;)
そうじゃなくて、Createで作成した150個のボタン全てが同一の関数を起動、
>>642 みたいな仕分け方(典型的には内部で if (buttonId == 0) とか)が出来れば
一番スマートじゃないかと・・・。で、これをどうするのかと(死
しかしシステムリソースは盲点(と言うかまだそこまで考えが・・・)。今2000で組んでますから。
一山越えたら95で動作チェックしないと逝けませんね。
事と次第によっては将来的には>>638かも・・・(汗
0649デフォルトの名無しさん
NGNGいや、150と言う値はともかく。
5個でも10個でも私は同じ方向で考えてるでしょうし。性格が粘着質なんで(ぉ
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG等質なもの(ボタンなど)を格子状に並べるなら、
TableとかGridとか名づけられているコンポーネントを使うのが正攻法
一ヶ月分のカレンダーなどが典型的な例題になっている。
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG新しい案をどうもです。つか新境地。これはこれで調べてみます(;´Д`)。
いやだから、MFC初心者なんですってw。
>>652
私レベルでは良く解りませんが、かすったかもしれません(笑)。恐らく一歩前進しました。
いやはや、聞いてみるもんですね。
ユニークなIDを持つボタンを複数作成出来れば、それでOKなんじゃないでしょうか。
私は現在、CreateでのそのユニークなIDの付け方が解らず(死)。
そこに的を絞って調査続行してみます(;´Д`)。
>>653
いやそれが。仕様上グラフィカルでないと成立しないと言うか。
囲碁プログラムで、置く位置をX,Yのコンボボックスで指定、なんて誰もプレイしたくないと言うか。
そんなノリのブツなんですよこれが(^_^;)。囲碁でもゲームでもないですが。
0655デフォルトの名無しさん
NGNG>囲碁プログラムで、置く位置をX,Yのコンボボックスで指
それならクリッカブルマップつかえよ。何を考えてたんだか。
0656デフォルトの名無しさん
NGNGそれはそれで考慮中(・_・、)。
0657デフォルトの名無しさん
NGNGもう上げんな。
0658デフォルトの名無しさん
NGNGそうすればUIに関するアドバイスからもらえると思うけど。
カレンダーならコンボボックスでもいいし、
囲碁ゲームならコントロールじゃなくて「絵」でもいいけど、
どちらでもないんでしょ?
開発者としてボタンが数百個置かれたプログラムを作るのはめんどうだけど、
ユーザとしてもそんなプログラムはあまり使いたくないなぁ。
0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNGどっかのヘッダに書けば?
0662デフォルトの名無しさん
NGNG150個カキまくりますか。まあ考えるよりその方が早いかもしれん・・・・・・。
0663デフォルトの名無しさん
NGNGそれは手動でもプログラム使ってでも好きなように。
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNGまあその方向で逝ってみますか。
MFCも何年かいじってれば正解も見えてくるだろうといふ事で。
お知恵をくださった皆様方、ありがとうございました。<とかいいつつまた覗きますが
特にTableに関しては近々本格的にチャレンジしてみたく思います。
>>664
いや日付じゃないです。カレンダーはモノの例えでして。
>>658
余りにダサいんで勘弁してください(涙
>>660
MFCでのソレの実装方法が全然見えてこなかったりして。因みにVC++5.0。
お暇でしたらお馬鹿ちゃんに愛の手を。
0666デフォルトの名無しさん
NGNGダサいとかの問題じゃないんだよ。
中途半端な情報しか与えないで教えてくれと言われるほうが迷惑。
0667sage
NGNG別にユーザーインタフェィスをどうしようかって質問じゃないんだから。
ボタン150個をどうするのかって話でしょ。
結論:力技
0668デフォルトの名無しさん
NGNGこの方がダセぇ。
0669デフォルトの名無しさん
NGNGだからこのUIが問題なんじゃないのかって話しだろ
0670デフォルトの名無しさん
NGNG終始一貫、複数のボタンをどう実装するのか?って話ですよ。
アドヴァイスとして、テーブルやクリッカブルマップの話も出てきましたが、
質問者の期待した答えではないでしょうし。
それに対して迷惑は言い過ぎでしょう。
もうちょっとマターリ逝きましょう。
0671デフォルトの名無しさん
NGNGおい、笑わせんな。
テーブルだってクリッカブルマップだってそれなりの解決法なのに
それを実装できないって理由で他の方法求めてるほうがおかしいだろ。
よく読んでみろ。クリッカブルマップだって、「わからん」の一言で済ませてるんだぞ?
本来なら、>>634のレスで終わってる内容だろうが。
0672デフォルトの名無しさん
NGNGわからないと言う人にはそれとなく教えてあげる方向で。
0673デフォルトの名無しさん
NGNGいまさらほかの方法に変えたくないんじゃない?
惰性は敵だ。
0674デフォルトの名無しさん
NGNG大丈夫。まだリソースエディタでぽちぽちやってる段階ですし、コーディング
そのものは0に近いです。つか敵はMFCだけです。ぷ〜の内容はマジ簡単(藁
0675デフォルトの名無しさん
NGNGなにをするプログラムなのかわかれば
>>634
>>641
>>653
>>664
などのどれかで解決だろ。
でもどれもいまいちみたいなこと言うから、じゃあおまえの作ってるのは
どんなのなのかと。いまいちな解決法レスで埋める前にとりあえず
どんなのが好みなのか言えと。
0676デフォルトの名無しさん
NGNGんじゃ全部ボタンで(懲りろ
なんか似たような事も書きましたけどね。このプログラムをどう仕上げるのかが問題じゃなくて、
複数個のコントロールから一つの関数を呼び出した時に、どう仕分けるかが疑問なのでありまして。
他のUI使えば仕分けなくていいよ、なるほどこれも確かに貴重なご意見ですが、
やはり質問者である私の期待する答えにはなってないと言う。
いやでも、みなさん親切に教えてくださいましたし。将来の課題でいいです、これは(笑)。
多分一般人は、余りやろうと考えないで、普通に5個10個関数を作るのでしょう。私がズレてました。
ま、それはそれとして。
さっきから検索かけまくったんですが、やはりVC++でのクリッカブルマップの実装方法が
全く見えてこないんで。どうでしょう675さん?
後学の為に、ちょっと実装法のヒントになるHP、ご存じでないですかね?|・)
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNGSDKならコントロールのハンドル→リストを線形検索で十分じゃい。
って俺がヘタレなだけか、
0679デフォルトの名無しさん
NGNG動作を実現する方法、知らない? API無いっぽいし...
0680デフォルトの名無しさん
NGNGクリッカブルマップを使え発言 == MFCを捨てろ発言?
豪快すぎて言葉が有りません・・・・・・。
0681デフォルトの名無しさん
NGNG何でそんな卑しい文体なの?
顔文字使わなきゃ文章書けないとか
0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNGあ、図解してくれると最高ですが(違
0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNGクリッカブルマップとMFCを捨てるにどのような関係が?
豪快すぎて言葉が有りません・・・・・・。
0686デフォルトの名無しさん
NGNGRUBY!!!!!!!!!>>>>>>>MFC
0687デフォルトの名無しさん
NGNG取りあえずこれも将来の課題といふことで。
力技で地道に進行中。
0688デフォルトの名無しさん
NGNG>複数個のコントロールから一つの関数を呼び出した時に、どう仕分けるかが疑問なのでありまして。
ID見て普通に仕分ける以外に無いと思うが、
なにか、ほかにあるんだろうか。
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNGちがうよ!<MAP>タグを使えってことだよ!
0692デフォルトの名無しさん
NGNGと言うかレスりすぎてコーディング進まねェし。バカ。
0693デフォルトの名無しさん
NGNGそこが彼の文章のわかりにくいところなんだよ。
彼が言いたいのは
「たくさんボタン置くのがめんどくせーから、いっぺんに
どばぁーっとボタンを置く方法知らねぇ?」
ってことなんだよ。
0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNG>と言うかレスりすぎてコーディング進まねェし。
まずやってからレスすれ。
だからこういう展開になる。
0696デフォルトの名無しさん
NGNG漏れもそう思った。張り付いてスレ見てるみたいだしな。
>>682->>683のタイミングとか。
しかも、クリッカブルマップが分かってないくせに>>687の豪快とは、これいかに。
>>680が自作自演だって事は明白だな。
MFCがどうのこうの言ってる時点で、クリッカブルマップが理解できとらんし。
0697650
NGNG何者って言われても。うざいと思ったからうざいと書いたとしか言えない。
ちなみに>>634で速攻クリッカブルマップとレス付けたのも俺だよ。
俺の他にも色々と意見を出してくれてる人がいるのに、分からないだのなんだの
言ってるからうざいと思ったまで。
0698デフォルトの名無しさん
NGNGそれいいかも。
>>695
いやーなんか次々出てくるんで。次々やっては捨て。ああバカ。でも頑張る。
>>696
自作自演なんて話じゃないです。敢えて一人だけsageてないので丸わかりです。
つか解る様にしてます。心外な(藁
張り付いてると言うか、レスってリロード完了すると増えてんだもん。
と言うか自分でコーディングするのか?クリッカブルマップ。
まだ理解出来てないかも。
0699デフォルトの名無しさん
NGNGCRect rect(100*i, 100, 200*i, 150);
CButton *b = new CButton();
b->Create("button", WS_CHILD|WS_VISIBLE, rect, this, 5000+i);
}
じゃダメかね。座標はテキトー。
0700デフォルトの名無しさん
NGNG逝けました、と言うかID以外は私もその手法だったのですが、
ID勝手に付けちゃって良かったんですかー。<ここら辺知らない辺りがモロ初心者
予約しとかないで大丈夫なのか?と言う疑問は残りますが、
そこら辺の処理は又別問題として、以後調査してみます。
>>652 さんの情報と組み合わせる事で、期待通りに動作致しました。やっとこさ。
併せて御礼申し上げます。
以上、しばらくはこのスレに来なくて済む事を祈って(笑)。どうもありがとうございました。
0701699
NGNG0702デフォルトの名無しさん
NGNG> ダイアログに31個のボタンを配置して、押すと「今日は○○日です」とか。
> どーすんでしょう?
たいていは「カレンダー作るんだろうなー」と思うよな。
> それともIDだけ31個作って、ループで回して31個CButton::Createして、OnCommandで仕分けますか?
こう言ってるんだからIDの作り方もループの回し方もcreateの仕方も
OnCommandの仕分け方もわかってるんだろうなーと思うよな。
で、これが嫌だから他の方法尋ねてるんだと思うよな。
そら>>634も即答するよな。
で結論が最初の方法(Create)ってどういうことやねん。
0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNGすまんが吹き出してしまった。
笑わせてくれた礼を言うからそうカリカリすんな
0705デフォルトの名無しさん
NGNG誰か、ショートカットのプロパティダイアログで「リンク先を探す」を押したときの
動作を実現する方法、知りませんかねぇ?
そういう APIというか、シェル関係のインターフェイスあります?
0706デフォルトの名無しさん
NGNGIShellLink::Resolve()
詳細はMSDN Libraryで。
0707705
NGNG>IShellLink::Resolve()
リンクターゲットはおっしゃるとおり、IShellLink::Resolve()で取得できます。
そうではなくて、「リンク先を探す」を押すと、新しいエクスプローラ窓が開いて、
リンク先オブジェクトが選択されますよね。これをやりたいんですが。
0708705
NGNGつ、使い方が分からない(鬱
0709デフォルトの名無しさん
NGNG引用の通り、ダイアログにン10個のボタンを配置、これは譲れない線なので
まあ許して(笑)。
つまり私の言う所の「IDの作り方」は、DevStdioで普通にン10個予約するか、
或いは#defineをン10個並べて予約するかの問題で、
その辺が初心者。何分一昨日初インストした所なんで(苦笑
その後は快調、快調。
0710デフォルトの名無しさん
NGNG0712705
NGNG感動した。
ShellExecuteレベルでできそうな気はしていたが、
explorer.exe にオプションスイッチがあったとは...
0713デフォルトの名無しさん
NGNG0714714
NGNGvectorって二次元にできます?
0715デフォルトの名無しさん
NGNG0716714
NGNG見たいな感じだとコンパイルエラーになるんですが(VC++)
ヒントだけども教えてください。
0717デフォルトの名無しさん
NGNGstd::vector< std::vector<int> > Dim
0719デフォルトの名無しさん
NGNGまた、スタンダード版はプロ版にバージョンアップ可?
0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNG本屋壱って買え
0722デフォルトの名無しさん
NGNGVC++で作りたいのですが、参考になるHPや書籍があったら紹介して
もらえませんでしょうか
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGとりあえず今見ているURLをもう一度開くコードを書いているのですが、
assert(m_pBrowser);のとこや、m_pBrowser->get_Document(&pDisp);でIEが落ちます。
なにか根本的に間違っているような気がするのですが、八方塞がりなのでご教授きぼんです。
IWebBrowser2* m_pBrowser;
assert(m_pBrowser);
IDispatch* pDisp;
m_pBrowser->get_Document(&pDisp);
IHTMLDocument2* pHTMLDoc;
pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pHTMLDoc);
BSTR pURI;
pHTMLDoc->get_URL(&pURI);
_variant_t varURL = _bstr_t(pURI);
_variant_t varEmpty;
if (m_pBand)
m_pBand->m_pWebBrowser->Navigate2(&varURL, &varEmpty, &varEmpty, &varEmpty, &varEmpty);
0725初心者?
NGNGm_pBrowser の中身って何なのでしょうか?
0726デフォルトの名無しさん
NGNGここでいいのかな?
0727726
NGNG読取専用のeditboxをIRCのようなチャットクライアントのウインドウにしたいのですが、
myED = (CEdit *)GetDlgItem(IDC_EDIT);
myED->GetWindowText(ss);
msg = ss + buf + "\r\n";
myED->SetWindowText(msg);
このようにして書き込んでいくと、
最初はいいのですが1画面の範囲を超えてスクロールが必要なときに
何か発言があるとスクロールが一番上に戻ってしまいます。
最初からスクロールが下にあるようにしたいのですが・・・
0728724
NGNGはい、初心者です(「IEコンポーネントを使い倒すスレ」に書けば良かったかも)。
IWebBrowser2* m_pBrowser = NULL;
です。
昨晩ちょっと格闘してみたのですが、ごく単純に
IHTMLDocument2* pHTMLDoc = NULL;
BSTR pURI;
pHTMLDoc->get_URL(&pURI);
_variant_t varURL = _bstr_t(pURI);
_variant_t varEmpty;
if (m_pBand)
m_pBand->m_pWebBrowser->Navigate2(&varURL, &varEmpty, &varEmpty, &varEmpty, &varEmpty);
とやってもダメなんですねえ。
0729デフォルトの名無しさん
NGNGNULLだったらアサーションで引っかかるのは当然と思われ
「今見ているURL」がほしいなら、Browser Helper Objectsを使いましょう。
MSDN Libraryに、そのものズバリっぽい解説&サンプルがあります。
http://www.microsoft.com/japan/developer/library/jptech/MSDNNews/top.htm
0730デフォルトの名無しさん
NGNGウィンドウ間通信じゃないといけないと聞いたけど、
どこかお勧めのサイトありますか?
0731デフォルトの名無しさん
NGNGOleLoadPictureでJPEGは読めるんですけど保存やPNGはどうしてますか?
有名なライブラリをリンクしてやってるんですけどプログラムサイズが大きくなって
ネットで配布するのに不便ですし何となく嫌です。
MS製でOSやIEなんかについてるActiveXとかないですか?
0733デフォルトの名無しさん
NGNGしたデータをリアルタイムで取得するプログラムを作成しようとしています。
そこで、質問があるのですが、以下の条件下でサーバとクライアントの通信方法、サーバ側
での使用言語等、アドバイスをお願いします。
(既出な話題でしたら、過去ログのだいたいの位置を教えてください)
クライアントは Windows(95、NT4以降) で言語は VC++6。
サーバは Solaris で言語は未定。
データはサーバから送られてくる(クライアントから取得するのではない)。
0734デフォルトの名無しさん
NGNG言ってることが変だぞ
>クラインアントから取得するのではない
ふーん、では
>データをリアルタイムで取得するプログラム
はどこで動くの?クライアントじゃないのか?
それを普通はクライアントから取得するというのだが。
0735デフォルトの名無しさん
NGNGごめんなさい。
サーバへの通信開始はクライアントから行うが、その後、サーバ側でデータに変更が
あった場合、リアルタイムにデータをサーバからクライアントに送信したいというこ
とです。
0736デフォルトの名無しさん
NGNGそれはネットラジオみたいな持続的なストリーミングデータかな。
ではなくて、サーバから間欠的にデータ更新がかかるのか?
後者なら普通のソケット通信で良いと思うがどうよ?
あと、クライアントの数は何桁かな?
その辺りをはっきりさせて、ネットワークプログラミング相談スレへ書け
ここではスレ違い
0737デフォルトの名無しさん
NGNGありがとうございます。
サーバから間欠的にデータ更新で、クライアント数は1万を想定しています。
うーん。ソケットですか。では、その方向で頑張ってみます。
0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNG1台のサーバで1万接続をさばくのは無理な気がするけどな〜
マルチキャストならいけるかなぁ。
スレ違いだね。すまん。移動するべし。
0740デフォルトの名無しさん
NGNGCSVの形で書かれたファイルを読み込んで二次元配列に格納するのは
どうやればいいでしょうか。
0741デフォルトの名無しさん
NGNGコンマからコンマまでをコピー。
0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNGwhile(EOF!=c=fgetc(fp)){
switch(c){
case
s[i][j]='\0'
i++,j=0;
break;
default:
s[i][j++]=c;
break;
}
}
文字列の二次元配列?
整数の?
0744デフォルトの名無しさん
NGNGMeを入れる。
XPはダサい。
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNGXpはもうちょっと待ちましょう。
でもMeはもっとださいぞ。
2000をいれなさい。
0747デフォルトの名無しさん
NGNGXP上での動作チェックをしたいので、XPでデバッガを動かしたいのですが。
0748デフォルトの名無しさん
NGNGIME をタスクバーに入れると良い、と ML で聞いた気がする。あとアンチウィルス系のソフトを入れてあったら
外してみれば。
(俺は開発マシンはまだ 2000 なんで、自分では試してない)
0749デフォルトの名無しさん
NGNGご存知でしたら教えていただけませんでしょうか。
インスタンスハンドルは GetModuleHandle(NULL) で
取得できるのですが、コマンドラインへのポインタの
取得などができないので・・。
0750デフォルトの名無しさん
NGNGで、STLはスコープから抜けると自動で確保したメモリ領域破棄するとおもうのですが、
よくみたら、メモリリーク検出してるんです。
なんか、宣言しただけでメモリリークしてるし、もうみてらんない。。
そんな俺の最新環境は、SGIのSTLは最新版(昨日ダウンロード)
で、listを宣言してVC++のDebugで実行したときののメモリリーク検出、これ最低。
VC++ってのはVC++6.0SP3。
そんな俺はCListでも使ってなさいってこった。
0751デフォルトの名無しさん
NGNG何故STLportを使わないのか問いたい。問いつめたい。VC++がANSI C++に完全準拠するその日まで問いつめたい。
0752デフォルトの名無しさん
NGNGほい。
file:///C:/Program Files/Microsoft Visual Studio/VC98/CRT/SRC/CRT0.C
0753デフォルトの名無しさん
NGNGnode allocator 使ってるから。気になるようなら STLport 使って
#define _STLP_USE_MALLOC
しとけ。(ただし性能がかなり落ちるから、リリースビルドでは node allocator 使ったほうが良いぞ)。
0754750
NGNG>>751
明日はSTL.port逝ってみるよ。
VC++がANSI C++に完全準拠するまで問い詰めるのは勘弁してください
もしからしたら永遠と問い詰められることに・・(ぉ
0756デフォルトの名無しさん
NGNGまあSTLportでstd::auto_ptrつかう時は忘れずに#define OBSOLATE 1しとけってこった。
0757749
NGNG>ほい。
>file:///C:/Program Files/Microsoft Visual Studio/VC98/CRT/SRC/CRT0.C
ありがとうございます。
でも見つからなかったです・・。
もしかして Enterprise Edition にしかついてないとか。
0758デフォルトの名無しさん
NGNGどうやって作るのか調べてもわからなかったのですが
何か参考になる資料などないでしょうか
0759デフォルトの名無しさん
NGNGインストールの時に選択しとかないとライブラリのソースは入らんぞ。
ちなみにコマンドラインへのポインタは GetCommandLine() だ。
0760757==749
NGNGMalloc.c とか New.cpp、Xtree とかはあるんですが、
CRT0.C がないのもライブラリのソースをインストール
しなかったせいなのでしょうか…。
一応 MSDN Library Disk1 の Sample フォルダをガーっと
検索してみましたが、見つかりませんでした
GetCommandLine() ですね。ありがとうございました。助かりました。
将来的には WinMainCRTStartup() を自分で実装してみたいです。
0761デフォルトの名無しさん
NGNGほい。
0762デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/bands.asp
0763760==757==749
NGNGあ・・ありがとうございます!
見つかりました。非常に参考になりました。感謝します。
"WinMainCRTStartup" などの文字列で HD を検索
してみなかった自分が迂闊でした。
しつこいですが(^^; 別の質問でございます。
ATLIMPL.CPP の WinMainCRTStartup() の最後で
::ExitProcess((UINT)nRet);
として終了していますが、これは意味があるのでしょうか。
入れたほうが良いと小耳にはさみましたが。
・・まぁ入れときます。
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNGもしかしてコンテナに auto_ptr 突っ込もうとしてないか?
0766デフォルトの名無しさん
NGNGOBSOLATE定義しないとどういうときにコンパイル通らなかったのか覚えていないんだけど、コンテナにauto_ptr突っ込むことはあるな。何か問題あるのかな?
0767デフォルトの名無しさん
NGNGコンテナに auto_ptr 突っ込むのはまずい。規格書に書いてあるんだが STL のコンテナに格納する要素は
CopyConstructive
コピーコンストラクタで作ったインスタンスと、コピー元のインスタンスが等しい
Assignable
代入演算子で代入されたインスタンスと、代入したインスタンスが等しい
という二つの条件が要請されてるんだが T が auto_ptr だと
T u;
T t = u;
を実行すると u はポインタの所有権を放棄してしまうので t != u となるので NG。実際、値がコピーできる
ことを前提として書かれたソートアルゴリズムなんかもあって、それを適用するとコンテナの中身が破壊
されるそうだ。
俺も、最近 Effective STL, Exceptional C++ 読んで始めて知ったんだけど。
0769デフォルトの名無しさん
NGNG俺、επιστημηのSTL本でSTLはじめたんすよ。
で、それの中で参照ベースコンテナの例としてauto_ptrをコンテナに突っ込む
例が掲載されてるんすよ。
よーし、パパvectorにpush_back(auto_ptr<Animal>(new Dog("ポチ"))するぞーとか言ってんすよ。
もうね、アホかと。本を書くなら規格書読めと。VCMLで偉そうな事言う前にやることあるだろうが、と。
0770デフォルトの名無しさん
NGNGISO C++の、どの時点のドラフトをベースにしているかによるな。
ま、正誤記事ぐらい書いとけよ>えぴすテメ〜ゴルァ
0771デフォルトの名無しさん
NGNG正直、彼の本はチェックが甘いと思う。「オブジェクト指向的日常」でも文章の誤記は多いし、コードでも
「そもそもコンパイル通らん」
「非ローカル static オブジェクトの初期化順序に依存するので、動作を保証できない」
なんてのがあった(もう本は捨てちゃったから正確なところは忘れたけど、シリアライズで出てきたオブ
ジェクト辞書に関して)。
別に STL の書籍は彼のものだけってわけじゃないし、さっさと捨てて別の本に乗り換えたほうが良いか
もね。
0772769
NGNG「Generic Programming STLによる汎用プログラミング」っちゅー本を最近は使っている。
間違っても一冊目に買うような本じゃないが、リファレンスとして良い本。
STLを学ぶための一冊目としては何が良いのか、未だによくわからない。
・いろんな使い方が載っている読み物的性格の強い本=?
・リファレンス本=Generic Programming STLによる汎用プログラミング
0773デフォルトの名無しさん
NGNGを教えてください。
0774デフォルトの名無しさん
NGNGこれからVisualC++を勉強していこうと思うのですが
本当にゼロから解説してくれるサイトや本はありますでしょうか?
よろしくお願いします。
0775デフォルトの名無しさん
NGNG0776774
NGNG割れではありません。
それに、本気でプログラムを勉強しようと考え相談しました。
今までプログラムに触れる機会がなかったもので何もわかりません。
0777デフォルトの名無しさん
NGNGVisual C++をつかってコーディングしているときに
[.]や[->]を入力すると自動でメンバを表示してくれる機能がありますが、
これが表示されなくなる事があります。
原因がよくわかりません。Visual Studioのバグでしょうか?
それともコーディングのまちがいか何かでしょうか。
思い当たる事があったら教えてください。お願いします。
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNGインテリセンスが動いたり動かなかったり?
0780777
NGNG全く同じ状況ではないです。
コーディングを進めていくと動いたり動かなかったりします。
コンパイルは通るのですが。
どこか気づきにくいコーディングの間違いでもあるかもしれません。
0781デフォルトの名無しさん
NGNGとりあえずワークスペースのフォルダにある*.ncb消せば直ると思うけど。
あれ、わりとよく壊れるらしい。
0782777
NGNGやってみましたところ、できるようになったみたいです。
ありがとうございます。
0783774
NGNGレスありがとうございます。
それはサイトの名前でしょうか?
0784デフォルトの名無しさん
NGNGyahooで検索してみ
0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNG参考図書スレにいくつかあがってるから、そっちをあたりましょう。
サイトといってるが、書籍につぎ込む金を惜しむようだと先が暗いぞ。
0787デフォルトの名無しさん
NGNG勉強しようとすると書籍代が
めちゃくちゃかかるよなあ・・・
0788デフォルトの名無しさん
NGNG3ケタの数字をランダムに0.3秒間隔で10回表示させる
プログラムはどう記述したらよいでしょうか?
わかりやすく言うと次々と現れる3ケタの数字を記憶するゲームを
作りたいと思っています。
最後に答えを表示できれば完璧なのですが。
わかる方いらっしゃいましたら、ご教授よろしくお願いします。
0789デフォルトの名無しさん
NGNGマルチやめれ!
言語書いてないし。
0790( _ 。。) _ バタ。 ◆lUd9keO2
NGNG書籍で何がしたいのか調べた上で、サイト検索かけるよろし。
全体的な事を完璧にフォローしてるサイトは小難しくなってたり
どこか落ちてたりするんで、的を絞ってサイトを見つけるが良い。
0791デフォルトの名無しさん
NGNGa,bという2種類のデータの線グラフを描きたいのですが,
一つのグラフならLineTo(hdc,time,a[time])でできます。
ところが,二つのデータを同時に描画するときは
どのようにしたらよいのですか?
また,この描画はメモリデバイスコンテキストを使ってますが
描画されるのはその時点での点としか表示されません
その点以前の点が描画されないのですが
その前の点も表示したいときはどうしたらよいでしょうか?
0792デフォルトの名無しさん
NGNG「マイドキュメント」フォルダはどうやって取得したらいいですか?
SHGetSpecialFolderLocation で取得できそうな気もしたんですがどうやら
無理っぱいです。
0793デフォルトの名無しさん
NGNGMoveTo()も使えばいいじゃん
0794793
NGNG0795デフォルトの名無しさん
NGNGCSIDL_PERSONAL指定して取得できなかった?
0796デフォルトの名無しさん
NGNGデスクトップ統合してない環境だと駄目だったはず。
HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders
から取るべし。
0797デフォルトの名無しさん
NGNGへー、そんなとこにあったんだ。感謝。
でもあれだよね、それってあらかじめそのフォルダが存在しないと
取得できないんだよね?例えば初期のWin95だと存在しない
スペシャルフォルダがいくつかあるけど、そういうのは
SHGetFolderみたいなAPIで作って取得しないといけないよね?
0798デフォルトの名無しさん
NGNGWord/Excel入れると存在するのでなんとも言えないね。
HKCU にエントリがなければ無いものとして扱えば良いんじゃないの?
俺のアプリは、HKCUにマイドキュメントの登録キー("Personal")が
無い場合はアプリインストール先フォルダで代替するようにしている。
勝手にスペシャルフォルダ作成するのは迷惑だしな。
0799デフォルトの名無しさん
NGNG> Word/Excel入れると存在するのでなんとも言えないね。
OfficeやIE入れるとDLLのバージョンが変わって新しい
スペシャルフォルダをサポートするようになるからね。
勝手にフォルダを作成するって言っても、MSが配布してるshfolder.dll
みたいなDLLを一緒に配布してIEが勝手に作るのと同じことしてるわけ
だからそんなに迷惑でもないと思うんだけどな。
0800デフォルトの名無しさん
NGNG左揃えを右揃えに変更したいのです。
一応SetWindowLongを使ってみたのですが、画面上は何も変わらない・・・
style=GetWindowLong(GetDlgItem(IDC_EDIT1)->m_hWnd,GWL_EXSTYLE);
style=style & ~WS_EX_LEFT;
SetWindowLong(GetDlgItem(IDC_EDIT1)->m_hWnd,GWL_EXSTYLE,style | WS_EX_RIGHT);
こんなコードなんですけど。
0801デフォルトの名無しさん
NGNGDestroyしてCreatしなおす、ってのじゃだめ?
0802800
NGNGごめん。前提書いてなかったから、ちょっと無理かも・・・
何したいかっつ〜と、
エディットボックスって貧弱なんで、いろんな機能付けたものを
ActiveXコントロールにしようかと思ったのね。
最初はプロジェクトウィザードでEDITを基本にして作成。
プロパティシートで、アライメント選択させてそれを反映させたかったんだけど、うまくいかなかった。
PreCreateWindowで変更するのはOKだったんだけど、それってしょっぱなだけだし・・・
DestroyしてCreatしなおすってのも普通ならありだけど、
上記の方法で作成したから、無理っぽいし。
基本に帰って、単純にダイアログにあるエディットボックスに変更かけて見たけど、無理だったと
俺、基本的なとこで間違ってるかな・・・
自前のエディットボックスって他の方法で作れる?
0803デフォルトの名無しさん
NGNGWS_EX_RIGHT ってのは右揃えじゃなくて、文字の並びを右から左に
するやつ(アラビア語サポート)じゃない?
右揃えにするんだったら通常スタイルの ES_RIGHT だよ。
ただし、複数行エディットでないと効果がなかったはず。
0804デフォルトの名無しさん
NGNGコンソールで10バイトのデータを受信し,
結果をファイルに出力してます
ReadFile使用して受信するようにしています
ここでシステムモニタでプロセッサ使用率を観察すると
プログラム前は40%ぐらい
プログラム起動後80%前後
受信しているときは10%以下
プログラム終了後80%
という結果になります
プログラムを終了した後もプロセッサ使用率が
高いままになっているのはどうしてなのでしょうか?
OSはWin98,VS6を使用しています
0805800
NGNGそうなのか?
まぁ、とにかく動的にアライメントは変えられないのかな?
リソースエディタ上で変更すれば出きるのに・・・
つか、MaskEditBoxが悪いんじゃ〜!!
2001年01月17日って入ってるところで(Maskは>9999\年 99\月 99\日)
頭の2を消したら、
0010年11月7_日 になるんじゃ〜気持ちわるっ!!
素直に
_001年01月17日 になりゃ良いのに・・・
0806デフォルトの名無しさん
NGNGプログラム前40%ってことはノートでないかい?
BIOSの設定とかで省電力モードになってるとシステムモニタは
0%にならんよ。
0807デフォルトの名無しさん
NGNG0x800Dが戻ってきます。
具体的には ファイル名に "[" "]" を含むファイルを抽出したいと思っています。
UnZipFindNext()で取得したINDIVIDUALINFOのszFileNameにはちゃんと収まっているので
これを""でくくってUnZipExtract()に渡しても同じ症状でした。
ちなみに正規表現文字を含まないファイル名を""でくくると上記の0x800Dエラーになりました。
うまい方法がありましたら、ご教授お願いします。
スレ違いだったら申し訳ありません。
よろしくお願いします。
0808デフォルトの名無しさん
NGNG与えるファイル名の正規表現に "\" を付けて(゚д゚)ウマー 。
0810デフォルトの名無しさん
NGNGSendMessage(Wnd,WM_KEYDOWN,WPARAM(VK_CONTROL),0);
SendMessage(Wnd,WM_KEYDOWN,WPARAM('A'),0);
SendMessage(Wnd,WM_KEYUP,WPARAM('A'),0);
SendMessage(Wnd,WM_KEYUP,WPARAM(VK_CONTROL),0);
とかやってみたんですが、うまくいきません。
WM_SYSKEYDOWNとかいうやらもいじくってみたけどなんか駄目そうです。
何を使えばいいのでしょうか?
0811デフォルトの名無しさん
NGNGフォーカスセットして
VOID keybd_event(bVirtualKey, bScanCode, dwFlags, dwExtraInfo)
でどうよ?
0812810
NGNG0813810
NGNG0814デフォルトの名無しさん
NGNGWordにペーストで貼り付けています。
すると、背景の白にぶつぶつが入ってしまうのです。
これをアクセサリーの「ペイント」にいったんコピーして
「ペイント」でもう一度コピーしてから貼り付けると
白はきれいに表示されます(というか何も表示されない)
どこがまずいのでしょうか?パレットの設定とかが必要なのでしょうか?
// クリップボードにコピー
hDC = GetDC(hWnd);
hDC_mem = CreateCompatibleDC(hDC);
GetClientRect(hWnd,&rc);
hBitmap = CreateCompatibleBitmap(hDC, rc.right, rc.bottom);
if (hBitmap) {
SelectObject(hDC_mem, hBitmap);
StretchBlt(hDC_mem, 0, 0, rc.right, rc.bottom, hDC, 0, 0, rc.right, rc.bottom, SRCCOPY);
OpenClipboard(hWnd);
EmptyClipboard();
SetClipboardData(CF_BITMAP, hBitmap);
CloseClipboard();
} else {
MessageBeep(0);
}
DeleteDC(hDC_mem);
ReleaseDC(hWnd, hDC);
0815デフォルトの名無しさん
NGNGSetTimer()のvoid CALLBACK EXPORT Timer Proc(HWND hWnd,
UINT nMsg,UINT nIDEvent,DWORD dwTime)の設定の仕方を教えて
ください。
0816デフォルトの名無しさん
NGNGメソッドにしてコンパイルエラーになる、という話か?
0817デフォルトの名無しさん
NGNGただ単純にわからなかっただけです。
0818 ◆277YSPPE
NGNG”しーぷらすぷらす””しーぷらぷら””しーぴーぴー”etc...
あとprintfは?
”ぷりんとえふ”ぷりんとふ”とか。
0819デフォルトの名無しさん
NGNGお前の書きこみはスレを腐らす
0820デフォルトの名無しさん
NGNGしーぱやぱや
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNGこんどからその呼び方を採用するよ
0823
NGNG0824デフォルトの名無しさん
NGNGです。
0825 823
NGNG徹夜の甲斐があって、ちゃんと動かせました。
ImageMagickはなんかしらないけど、
bmpからjpgに変換するときメモリリークしてたんだが、
原因知ってる?
0826デフォルトの名無しさん
NGNG*charなんですよね、文字列じゃなくて構造体とかを
渡したい場合はどうなるんでしょう?ためしに(char*)で
キャストしてみたけどだめでした。
0827デフォルトの名無しさん
NGNGあんた・・・
0828デフォルトの名無しさん
NGNG何がどうだめだったんだ?
0829デフォルトの名無しさん
NGNG(char*)でキャストできなかったんだろ
0830デフォルトの名無しさん
NGNG解法お願いします。
>827
そんなにやばい考えですか?(^^;
0831デフォルトの名無しさん
NGNGコンパイラからできた鯖とクライアントなら、渡るんじゃないの?
まぁ、たしかに、設計は逝ってよしだがな。
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGダメだったっていうのは、全くデータが送られなかったのか、
上手くデコードできなかったのか、どっち?
0834デフォルトの名無しさん
NGNGコンパイルできなかったです。
0835デフォルトの名無しさん
NGNGtypedef struct data { double a, b, c };
data datum={5.0,1.0,2.0};
send( (char*)datum, sizeof( data ) );
とかやったんじゃないだろうな。だったら、処置無しだぞ。
0836デフォルトの名無しさん
NGNG処置なしってどういうことですか?
0837デフォルトの名無しさん
NGNGsend( (char*)&datum, sizeof( data ) );
のちがいが判らない香具師デスカ?
0838デフォルトの名無しさん
NGNGどういうことかわかってる?
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNGやってみます
0841デフォルトの名無しさん
NGNG何故そうすればいいか理解しないでそういうプログラム書くのは
やめれ。問題が起こったときに対処できない。
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNGそのへんを勉強しなおせば
答えはおのずと
0845元VB厨房
NGNGCList型、もしくはCStringList型を返すようなのを作ろうとしているのですが、
なかなかうまく行きません。
CList型だと、シンタックスエラーだとでてしまい、CStringList型だと
演算子"="がオーバーロードされていないため失敗します。
うまい方法はないでしょうか。
それともコレクションを値で返そうとしている漏れは逝ってよしでしょうか。
0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNGエラーメッセージは、定義されていない基本クラス
(Base<Elem1*>とBase<Elem2*>)が宣言されているとのことです。
コンパイラオプションなんかで対応できるのでしょうか?
---
template<typename T>
class MyClass {
template<typename E>
class Base;
class Derived1;
class Derived2;
class Elem1 { Derived2* mElem2; };
class Elem2 { Derived1* mElem1; };
template<typename E>
class Base {};
class Derived1 : public Base<Elem1*> {};
class Derived2 : public Base<Elem2*> {};
};
0848847
NGNGよく判らないけれど先頭の template<typename E> class Base;
を消したら通った。ふご。
0849デフォルトの名無しさん
NGNGBYTE *a;
中身 a[0]=1
a[1]=2
|
a[9]=10
の内容を
BYTE *b;
にそっくりコピーするにはどうしたら良いのでしょうか?
よろしくお願いしますm(__)m
0850デフォルトの名無しさん
NGNG参照使え
0851デフォルトの名無しさん
NGNG個人的には、std::vector<BYTE>とかにすることを
おすすめするが。
0852デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNGこの場合、memmoveにする意味がないだろ
0855デフォルトの名無しさん
NGNGそれはなぜ??
0856デフォルトの名無しさん
NGNGaとbが重なってない(だろう)から
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNGmallocで新しく確保した領域が、元々あった a の指す先と重なってることはあるまい。
0859デフォルトの名無しさん
NGNG0860858
NGNG0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNG0865
NGNG起動するのは何故? 思わずキャンセルしちゃったけど。まさか自動でMSにメール
とか送信したりするの?
0866デフォルトの名無しさん
NGNGそうビクビクしなくてもいいじゃないか(ヒヒヒ
0867
NGNGなんとかなくキャンセルしただけだから、別に問題がないなら
インストールしてしまうけど。
0868デフォルトの名無しさん
NGNGいくらで買ったの?
VisualC++5.0エンタープライズ版が
秋葉で7000円位で売っていたのを
昔見たことがある。
0869デフォルトの名無しさん
NGNGCreateThread()を使ってマルチスレッド化するとき、
注意しなければならないことといえば
ファイルやメモリの「同時書き換え」だけでしょうか?
ファイルの読み込みとか変数の同時参照(?)とかは
大丈夫なのでしょうか?
(デバイスコンテキスト関連に注意するというのはどこかで聞いたような・・
厨な質問ですみません、よければアドバイスお願いします
0870デフォルトの名無しさん
NGNGいちいち注意点を具体的に挙げてればきりがないと思うな。
要するに、TLS と auto 変数以外の「何か」を使うときは必ず、
「もしかして他のスレッドが…?」と、まず心配してみることが肝要かと。
あと、MSDN は必ず調べるべし。
DLL を使う(or 作る)なら、リンクするライブラリにも注意。
…挙げてたら本当にきりがない。
0871デフォルトの名無しさん
NGNGだがあえて初心者にお勧めしたい。いいトレーニングになるので。
VC++のバージョンは6.0なんだけどね、付属しているSPが3なんだよ。いやまじで、
そんで、あれだよ、MSNDの無料クーポン券の有効期限が200101231に切れてるの。
さすがダイエー、むかし、DVDプレイヤーかったとき、
どっかの親バカが自作した自己満足のお子様ビデオが入ってたときには、バッタやから
仕入れたんだな。と仕事の関係がアレだからすぐに気づいたから、返品交換してもらったけど、
今回はレシート捨てちまったし、現金でかったから、クレジットの明細がないんだよ。鬱だ。死にたい。
ダイエーは癌だ。速く倒産しろ!!ファック!!
0873デフォルトの名無しさん
NGNGなどと、今日一日を振り返り、反省してみる。
0876デフォルトの名無しさん
NGNG> 付属しているSPが3なんだよ
SP は最新版が MS の Web サイトから落とせる。心配するな。
MSDN Library の件はご愁傷さまだが、とりあえず MS に掛け合ってみなよ。
0877___
NGNGでMFCの勉強をしようと思って
第一回のソースをそのまま打ち込んでみたのですが、
#include "afxwin.h"
class CMyWindow : public CFrameWnd
{
public:
CMyWindow();
};
CMyWindow::CMyWindow()
{
Create(NULL,"猫でもわかる",WS_OVERLAPPEDWINDOW);
}
class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMyWindow();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
CMyApp myApp;
コンパイルはできるが実行時にリンカが
nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__endthreadex" は未解決です
nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__beginthreadex" は未解決です
Debug/SDKTOMFC.exe : fatal error LNK1120: 外部参照 2 が未解決です。
この3つのエラーを出してしまいます。
VCのバージョンのせい(使っているのはVC6)
かもと思っているのですが、解決策ありましたら教えてください。
0878デフォルトの名無しさん
NGNG激しくスレ違いと思うが、何か?
0879デフォルトの名無しさん
NGNG誘導
■ VisualC++(MFC限定)相談室 2■
http://pc.2ch.net/test/read.cgi/tech/1008031675/
0880やー
NGNGMSDNの中にあるやつなんか・・?これなんか?
これはチュートリアルのチュートリアルにもみえんねんけど、
これがチュートリアルなんか・・?
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGファイルのバイト数をブロック毎に格納して行きたいのですがファイルによって可変なので
CDWordArrayでAddしていってるんですけど多分、領域が足りずにエラーが発生します。
SetSizeの効果もいまいちなのでどうしたら良いのかと思ってます・・・。
ベストな手段が有ったらご教授お願いします。
0883デフォルトの名無しさん
NGNGエラーってどんなエラー?
0884デフォルトの名無しさん
NGNG質問の意味がよくわからんのだけど
要は4バイト毎にシークすればいいのではないのかね?
ちがうの?
0885デフォルトの名無しさん
NGNG4.5.1をダウンロードして、展開 (場所は...\Microsoft Visual Studio\VC98\Include\STLport-4.5.1\)
VC++のオプションのディレクトリ設定のところで一番上に
C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\INCLUDE\STLPORT-4.5.1\STLPORT
を追加
iostreamは元のを使うってことで
...\STLport-4.5\stlport\stl_usr_config.hの最初のほうにある
# define _STLP_NO_OWN_IOSTREAMS 1 から#を削除し、コメントでなくす とか
stlport/stl/_site_config.h の上の方に
#define _STLP_NO_OWN_IOSTREAMS とか
やってみたりしたのですが、コンパイル時に
:\program files\microsoft visual studio\vc98\include\stlport-4.5.1\stlport\new(50) : fatal erro
r C1083: インクルード ファイルがオープンできません。'../include/new(THIS_FILE, 50)': No such file or dire
ctory
となってしまいます。../include/newが無いとか言われてるので vc99\include\stlport\
に置いてみたりもしましたが、同様の結果でした。
また、iostreamをコンパイルしてインストールし上記の#defineをしない場合でも同様でした。
そんなこんなで、徹夜状態の私を救ってください。お願いします。
0886885
NGNG↓
../include/newのエラーの行は
# include _STLP_NATIVE_CPP_RUNTIME_HEADER(new)
でnewが無い
0887デフォルトの名無しさん
NGNG0888888
NGNG有効桁数は同じでもいいのですが…
0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNGCString型のメンバ変数からchar型の配列の代入はどうすればいいのでしょうか。
0891デフォルトの名無しさん
NGNG_tcscpy または lstrcpy
0892デフォルトの名無しさん
NGNGこんなかんじでもいける気がする。
LPTSTR str=new char[10];
CString cstr("hogege");
str=(char*)LPCTSTR(cstr);
0893日下部圭子 ◆ib749tYo
NGNG> こんなかんじでもいける気がする。
だめですね。
----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
0894デフォルトの名無しさん
NGNG何が?
0896デフォルトの名無しさん
NGNGネタ?
0897デフォルトの名無しさん
NGNG0898た。
NGNGCString strTime;
CTime t = CTime::GetCurrentTime();
strTime=t.Format("%H:%M:%S");
LPTSTR p1 = strTime.GetBuffer( 255 );
0899デフォルトの名無しさん
NGNGどうすればいいんでしょうか?
WM_CLOSEを送ってもビープ音が鳴るだけなんですが。
0900デフォルトの名無しさん
NGNGGetBuffer()は、リリースしないといけないからめんどくさい。
0901デフォルトの名無しさん
NGNGほかに方法あるのだろうか?
0903デフォルトの名無しさん
NGNGリリースは省略できないよ。
0904デフォルトの名無しさん
NGNGなるだけCStringやconst char*系を使うようする。
一部にchar*系を要求するAPIがあるけど、そういうときは
char*のバッファにコピーして使う。
0905デフォルトの名無しさん
NGNG> LPTSTR str=new char[10];
このメモリはいつdeleteするのだろう。
0906デフォルトの名無しさん
NGNG0907た。
NGNGそんなこといったら、
cは関数終了に
}
で閉じなきゃ成んないからめんどくさい。
ってのと同じレベルかと。
GetBufferしたら勝手にこびとさんがReleaseBufferしてくれるように
手を鍛えると良いかと。
#でもMFC周りは色々手続きが煩雑でめんどくせーよな。
#Penなんかも切替えてもSelectObjectで元に戻すの
#忘れたりけっこうするし。
0908デフォルトの名無しさん
NGNGリークしてますね。
0909た。
NGNGそう言うときはいつもお世話になってるBoundsChecker。
結構うそ吐き出すけど。
MFCのなかでリークしてるなんてどないするんぢゃ。
0910デフォルトの名無しさん
NGNGその場合は LPCSTR にキャストして直渡しでいいのでわ?
0911デフォルトの名無しさん
NGNGLPCSTRだとchar*にわたせない気が。
0912デフォルトの名無しさん
NGNG読み書きで同じ構造体使うやつ。
そう言うのはモレも強引にキャストしちゃうけど。。
0913デフォルトの名無しさん
NGNGだからバッファにコピーするっていってるじゃん。
0914デフォルトの名無しさん
NGNG同感。MSNDに
「CString はメモリを節約するために、同じ値を持つ 2 つの文字列が
同じバッファ領域を共有できるようにします。
しかし、MFCを使用しないでバッファ領域の内容を直接変更すると、
両方の文字列が変更されてしまいます。」
とあるが、GetBuffer()はこれ対策なんでは・・などと思うわけで。
char*キャストして渡す分にはイイとおもう。
0915デフォルトの名無しさん
NGNGchar*に強引にキャストするとか、ヤバい奴がけっこういるな。
0916デフォルトの名無しさん
NGNGGetBufferをすると、
インスタンス内のポインタが同じバッファを指していると、
コピーされるみたいですね。
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNGそんなキャストするよりはコピーして渡した方がいいというのには同意。
0920デフォルトの名無しさん
NGNGカラムの幅を自動調節してくれますが、
これをコードから行うにはどうしたら良いですか?
0921デフォルトの名無しさん
NGNGCString cstr = "hogehoge";
char *str = _strdup( (LPCSTR)cstr );
...
free(str);
0922デフォルトの名無しさん
NGNGLVM_SETCOLUMNWIDTH で LVSCW_AUTOSIZE。
0923デフォルトの名無しさん
NGNGできました!どうもありがとうございます。
0924デフォルトの名無しさん
NGNG(詳細、一覧、大きなダイアログ)などを記憶させる方法を教えてください。
詳細の場合はソートの方法も復旧させたいのですが、方法がわかりません。
0925デフォルトの名無しさん
NGNGシリアライズしる!
0926演算(比較)速度
NGNG0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNG0929926
NGNGBOOL a;
for(int i=0; i<100000000; ++i) a = TRUE;
と
bool a;
for(int i=0; i<100000000; ++i) a = true;
を比較したら、boolの方が、平均で 150msぐらい速かった(゜ε ゜ なんと。
0930デフォルトの名無しさん
NGNG0931926
NGNGint b;
for(int i=0; i<100000000; ++i) if(a) b=1;
とやったら、今度は BOOLの方が平均 200msは速かった。
代入は bool、比較は BOOLの方が速い?
0932デフォルトの名無しさん
NGNGそんなん代入はBOOLの方が3バイト分(VC++6とかでは)でかいんだからあたりまえやん
比較は>>928の言うとおり。
0933デフォルトの名無しさん
NGNGvolatile無くてダイジョブか?
boolって!0な値を代入するとぜんぶ1に変換されるんだな・・・
今まで知らんかった・・・
0934デフォルトの名無しさん
NGNGデバッグビルドだったので、ダイジョブ(だよね?)
0935いさましいチビ
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1011615035/l50
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNGone or more breakpoint cannot be set.みたいなエラーが出て、
白ブレークポイントにされてしまいます。
クリーンとかしてみたけど改善しません。
なにが原因なんでしょか?
0938937
NGNG間抜けでした。
0939924
NGNG返答どうもです。CFileDialogにはSerialize()が実装していないので、
出来ないみたいなんですが・・。
MSにTELしたら、20011231に期限が切れたクーポン券が同封されたパッケージを
購入した人は一月中に登録すればOK。だと。
0941デフォルトの名無しさん
NGNGreturn で返す値が今一つよく分かりません。
#define ID_MENU0 0
#define ID_MENU1 1
#define ID_MENU2 2
STDMETHODIMP CShellExtension::QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
{
...
InsertMenu(hMenu, 0, MF_STRING | MF_BYPOSITION, idCmdFirst + ID_MENU0, "mめにゅ0");
InsertMenu(hMenu, 0, MF_STRING | MF_BYPOSITION, idCmdFirst + ID_MENU1, "mめにゅ1");
InsertMenu(hMenu, 0, MF_STRING | MF_BYPOSITION, idCmdFirst + ID_MENU2, "mめにゅ2");
とした場合、
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(ID_MENU2 - ID_MENU0 + 1));
で良いの? どうも自信がなくて。
0942941
NGNG0943885
NGNGhttp://www.stlport.com/dcforum/DCForumID6/603.html
こんな投稿があったので試してみましたが、やはり同じです
_STLP_NATIVE_INCLUDE_PATH に設定してみても同じでした
同様の症状がでて、解決した方、救ってください。
0944デフォルトの名無しさん
NGNGよいのでしょうか。私が参考にしている本には、
COLORREF color;
if(GetBValue(color) == 0 && GetBValue(color) == 0
&& GetBValue(color) == 0)
となっていて、白と黒は判定できるのですが、それ以外は反応無しなのです。
どうすればよいでしょうか?
0945さくら
NGNGダイアログに貼り付けたリストボックスで、アイテムが選択されたときに送られるメッセージは何ですか?spy++で調べてもたくさんですぎてわかりませんでした。
あと、選択されているアイテムが変わったときに送られてくるメッセージも教えてくださ〜い(>А<)
0946デフォルトの名無しさん
NGNG0947さくら
NGNGあっ、やったぁできましたぁ!ありがとうございます〜☆(^Э^)ヾチュッ
0948デフォルトの名無しさん
NGNGやっぱし英語のヤツしかなかったりするから。
0949デフォルトの名無しさん
NGNGム板マ板にいるプログラマ全員でかかれば、MSDNライブラリの
英文を全部和訳出来そうな気がする、と言ってみるテスト。
そんなことが出来る暇なプログラマはDQNばっかりだよ、
と返ってきそうな採点結果。
0950デフォルトの名無しさん
NGNGそんなことが出来る暇なプログラマはDQNばっかりだよ
ローボコン100点
0951号泣マン
NGNG自力で検索しましたが、
http://codeguru.earthweb.com/listview/edit_subitems2.shtml
みたいな英語のページしかないのでめげています。
私はMFCを使わない(使えない)ので、ちょっとショックです。
WindowsSDKのソースがあるとうれしいのですが。。。
宜しくお願いいたします。
0952デフォルトの名無しさん
NGNG猫に訊くとか、ATL/WTLのソース読むとか、MFCのソース読むとか、
方法は幾らでもあるだろうに。
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNGがあるから、それに従ったんだろう。
どーでもいい事をコテハンで書き込む連中には激しく萎え。
0956号泣マン
NGNGあ〜あ期待した折れが馬鹿だったよ。
じゃーなー
0957デフォルトの名無しさん
NGNG一万円で、サンプルを書いてあげるよ。
0958デフォルトの名無しさん
NGNG質問は新スレでしろよ。
それに煽るな。
サンプルがMSDNの中にある。
InitListViewImageLists でクエリーかけてみろ。listview.cが見つかる。
ただ、個人的にはListViewのサブ項目の編集は使いにくいので
別の方法を模索するのを勧めるけどな。
0959デフォルトの名無しさん
NGNG間違ってこっちに質問が来ないように、埋め立てカキコを
しちゃあかんのだろうか?
と、聞いているフリをして埋め立てをちょっと行ってみる。
0960太郎
NGNGVCを勉強しているのですが。
よく分かりません。
単なる、ダイアログベースで作成して、
プロパティーページを出そうとしているのですが、
デバックで一度動いて、二度目で落ちてしまいます。
クラスは、CPropertyPageとCPropertySheetを使っています。
使用しているのは、VALUESTAR VL700R/5のマシン、
OS WINDOWS MEです。
ひとつ分かっているのは、一度、ツールバーのプロパティーを
動かしたら、デバックで死ぬことは、ありません。
VC6、サービスパック5をインストールしています。
よろしくお願いします。
0961デフォルトの名無しさん
NGNG埋まると dat 落ちしてしばらく参照できなくなる。
>>960
次スレに移ってください
VisualC++相談室 6
http://pc.2ch.net/test/read.cgi/tech/1011615035/
0962次郎
NGNG??=include <stdio.h>
??=if 1
main()??<printf("Hello??/n");??>
??=endif
がコンパイルできないんです。
??=include <stdio.h>
??=if 1
main()??<printf("Hello??/n");??>
#endif
だとコンパイルできるですけれど・・・・・
みなさんはどう思います?
ちなみに??ばっかりですけれど文字化けではありません。
0963デフォルトの名無しさん
NGNG同じようなことをするにはどうすればいいでしょうか。
0964( _ 。。) _ バタ。 ◆lUd9keO2
NGNG現在のテキストカーソル位置の取得なら
MAGURO ONLINE にサンプルコードがあったと思ったが…?
(実際、中身見たことないで 確認してくれ >>963 よ )
レス数が950を超えています。1000を超えると書き込みができなくなります。