くだすれVisual C++(超初心者用)
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGもしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Visual C++使いが優しくコメントを返しますが、
お礼はVisual C++の布教と初心者の救済をお願いします。
Visual C++ Home Page
http://www.microsoft.com/japan/msdn/visualc/
前スレ
http://pc8.2ch.net/test/read.cgi/tech/1135817069
00021は前スレの1
2006/02/28(火) 09:43:16パート○○とか、ダサイっしょ
0003デフォルトの名無しさん
2006/03/01(水) 00:46:57for()
}
0004デフォルトの名無しさん
2006/03/01(水) 04:44:380005デフォルトの名無しさん
2006/03/01(水) 07:24:290006デフォルトの名無しさん
2006/03/01(水) 13:18:37Express Edition : Microsoftが作っている
BCB : Borlandが作っていた
0007デフォルトの名無しさん
2006/03/01(水) 14:10:09Visual Studioは本来、VC++だけでなくVB (.Net)やVC#などもセットになったIDE。
このスレはその中でもVC++のスレ。VC++ならどんなバージョンでも受け付ける。
0008デフォルトの名無しさん
2006/03/01(水) 17:06:190009デフォルトの名無しさん
2006/03/04(土) 00:20:00やはり初心者にはC#の方が良いのでしょうか?
いつかはネットワークプログラミングをできるようになりたいです!
どちらを選択したら良いのか教えてください!
0010デフォルトの名無しさん
2006/03/04(土) 00:29:19ネットワークプログラミング → C
0011デフォルトの名無しさん
2006/03/04(土) 02:31:39を買ってwin32アプリの製作を目指しているものなのですが、
LinuxのコンソールでC言語を習得したつもりでもまったく違う環境と
あまりに多いAPIに悩まされています。
最初は「おまじない」みたいな感じでソースを書いて流し読みでも良いのでしょうか・・・・
0012デフォルトの名無しさん
2006/03/04(土) 06:18:37コードよりも概念が重要
理論がわかってれば細かいコードはどうでもよくなる
0013デフォルトの名無しさん
2006/03/04(土) 06:48:08その概念って、どうやって理解すればいいの?
推薦図書とかあったら教えて。
0014デフォルトの名無しさん
2006/03/04(土) 08:50:40自分は Mac から移行したから GUI の扱いに抵抗はなかったが、DOS から Mac に
移行したときは参った。Mac -> Windows 移植では、Mac の API と互換の関数を
最初に作ったのだが、振るまいが分からないときは、送られて来る msg を逐一
ファイルに取ったりした。で、
static FILE *fd;
#ifdef TEST
if ((fd = fopen("err.txt", "a+"))!=NULL){
fprintf(fd, "...", x, y, ...);
fclose(fd);
#endif
なんてのぶち込んだ。1ステップずつ追うときはデバッグ実行でもいいが、
要所要所を見るときは、この方が楽だと思った。大体の処理傾向がつかめると
他への応用も効くようになる。余り基本的でない部分ではサンプルのままで
やって置くのがいいと思う。慣れるとキャストしながらポインタを使いまわす
ようになるが、やりすぎると痛い目に会う。幸運を祈る。
0015デフォルトの名無しさん
2006/03/04(土) 13:05:36こんなエラーがWSACleanup();を使うと出てしまうんですが、何が原因なんでしょうか・・・・
サンプルソースすらコンパイルできないなんて・・・・
#include <stdio.h>
#include <winsock2.h>
int main() {
TCHAR str[1024];
WSADATA wsaData;
WSAStartup(2 , &wsaData);
printf("バージョン = %d.%d\n記述 = %s\n状態 = %s\n" ,
(BYTE)wsaData.wHighVersion , wsaData.wHighVersion >> 8 ,
wsaData.szDescription ,wsaData.szSystemStatus
);
WSACleanup();
return 0;
}
0016デフォルトの名無しさん
2006/03/04(土) 14:07:18ライブラリはリンクした?
0017デフォルトの名無しさん
2006/03/04(土) 14:11:21え・・・・
kwsk
0018デフォルトの名無しさん
2006/03/04(土) 14:17:05関数はライブラリをリンクしないと使えない。
何もしなくても基本的なライブラリはリンクされるようになっているから、
printfなんかのC標準関数や一般的なWinAPIの関数はヘッダをインクルードするだけで使えている。
自分の使いたい関数がどのライブラリを要求するかはWindows関係ならMSDNを引けば書いてある。
0019デフォルトの名無しさん
2006/03/04(土) 14:27:01http://pc8.2ch.net/test/read.cgi/tech/1133286541/407をコンパイルする方法を教えてくださいよろしくおねがいします
002015
2006/03/04(土) 15:18:22ありがとうございました!!
0021デフォルトの名無しさん
2006/03/04(土) 16:24:31そこから先は、環境によったりするからコンパイルを試して
からじゃないとわからないと思う。
共通して言えるのは
1.SDKやらPSDKなりの必要な物を入れる。
2.ライブラリ等にパスを通す。
3.未解決ってエラーが来たら、Googleなりで調べて使用している
ライブラリを追加or2をやる。
0023デフォルトの名無しさん
2006/03/04(土) 16:43:49( `・ω・´)ノヨロシクー
テキストボックスから読み込んだ文字列を、16進数に変換するプログラムで
16進数以外を入力したら
"変換が正常に行われませんでした"
を出したいのだけど
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
errno=0;
pin_ptr<const wchar_t> text = PtrToStringChars(textBox1->Text);
//16進数に変換
wchar_t* pEnd;
unsigned long ul = std::wcstoul(text, &pEnd, 16);
/*整合性のチェック(16進数かどうか)
if(errno != 0){
/* errno has changed, so error has occurred */
MessageBox::Show("変換が正常に行われませんでした");
}
}
なぜか数字は、8桁迄は問題無いけど、9桁以上入力すると
"変換が正常に行われませんでした"
が表示されるし
A-Fを8桁以上入れると
"変換が正常に行われませんでした"
A-F以外なら何桁でも何も出てこない
本来意図する反対の様な振る舞いなんだが
漏れが意に反するコードを書いているためだと思うが
(´ε`;)ウーン…ワカラン
なんで?
0024デフォルトの名無しさん
2006/03/04(土) 16:59:49http://msdn.microsoft.com/library/ja/vclib/html/_crt_strtoul.2c_.wcstoul.asp
VC++のunsigned longは32bitで、それはちょうど十六進法で8桁。9桁以上はオーバーフローしないわけがない。
あとpEnd使っていないじゃないか。
0025デフォルトの名無しさん
2006/03/04(土) 17:11:57では変換する文字列の頭にに0xを付けたら16進数と認識してくれるってこと?
MSDNで調べたらpEndってオブジェクトに対応するテキストの最後の文字へのポインタですってあるけど、
wchar_t* pEnd;
では駄目なのかな?
0026デフォルトの名無しさん
2006/03/04(土) 17:20:59pEndは、wcstoul()呼び出し後にチェックすることで変換終了点を検出するために用意したのではないのか?
そうでないなら、要らない。
0027デフォルトの名無しさん
2006/03/04(土) 17:28:300028デフォルトの名無しさん
2006/03/04(土) 17:32:31//if(errno != 0){
if(*pEnd != L'\0'){
0029デフォルトの名無しさん
2006/03/04(土) 17:45:4625=28ですが
if(*pEnd != L'\0'){
でコンパイラも通ったし、結果も意図する事となったポイんだが
errnoの使い方が中途半端というか、全然分からないのだけど
errnoで判定する為にはどうしたらよろしか?
0030デフォルトの名無しさん
2006/03/04(土) 17:59:410031デフォルトの名無しさん
2006/03/04(土) 18:23:3824のURL読んだ?
オーバーフローまたはアンダーフローが発生したときにerrnoが設定されると書いてあるだろ。
つまりその他の場合にはerrnoは何も設定されない。
もちろんこれはMSの独自仕様ではなく、ISOの決めたこと。
0032デフォルトの名無しさん
2006/03/04(土) 18:43:18たしかに、そうだけど
変換を実行できなかった場合は 0 を返します
ともあるので
16進数以外の場合0を返すってことではないのかな?
0033デフォルトの名無しさん
2006/03/04(土) 18:55:57もしライブラリのソース持ってなかったら、
いろいろなケースを想定して納得がいくまでテストすればいい。
0034デフォルトの名無しさん
2006/03/04(土) 19:27:28errnoで16進数か、否かを判定するのは標準的ではないという事でよろしだな
┐(´д`)┌ヤレヤレ
0035デフォルトの名無しさん
2006/03/04(土) 21:41:08素朴な疑問なのですが、
プロジェクトの設定の追加依存ファイルでライブラリを追加するのと、
どこかのヘッダに #pragma comment(lib, "hoge.lib") とするのでは、
何か違いがあるのでしょうか。
0036デフォルトの名無しさん
2006/03/04(土) 21:44:380037デフォルトの名無しさん
2006/03/04(土) 21:45:01どこかのヘッダに #pragma comment(lib, "hoge.lib") とするのが違う。
0038デフォルトの名無しさん
2006/03/04(土) 21:50:130039デフォルトの名無しさん
2006/03/04(土) 21:51:350040デフォルトの名無しさん
2006/03/04(土) 22:08:55ありがとうございます。
0042デフォルトの名無しさん
2006/03/04(土) 22:21:12あれのせいで見慣れない記述がイッパイ出てくるから、
プログラムが理解しにくくなっているよな
0043デフォルトの名無しさん
2006/03/04(土) 22:32:140044デフォルトの名無しさん
2006/03/04(土) 23:20:12wchar_t* arg_2;
_ultow(arg_1,arg_2,16);
こんな使い方したら、
: warning C4996: '_ultow' が古い形式として宣言されました。
: '_ultow' の宣言を確認してください。
と指導を受けました、_ultowをどう書き直したらいいの?
0045デフォルトの名無しさん
2006/03/04(土) 23:26:01慣れれば大したことは無い。
0046デフォルトの名無しさん
2006/03/04(土) 23:27:25ヘッダの宣言を確認してください。
0047デフォルトの名無しさん
2006/03/04(土) 23:51:23よく読んだら
_ultow_s (arg_1,arg_2,32,16);
最近はこう書くようですね
0048デフォルトの名無しさん
2006/03/05(日) 00:13:57できた実行ファイルをバイナリエディタでみてみると
最後のほうにPADDINGという文字がいくつも並んでいるのですが、
これは仕様でしょうか?
この文字を削ってファイルサイズを小さくすることはできないのでしょうか?
0049デフォルトの名無しさん
2006/03/05(日) 00:17:56#pragma comment(linker, "/opt:nowin98")
005048
2006/03/05(日) 00:29:43早速のレスありがとうございます。
試してみたのですが、
main.obj : warning LNK4229: 無効なディレクティブ '/opt:nowin98' が見つかりました。無視します。
というメッセージが出てPADDINGという文字はそのまま残ってしまいました。
他に設定しなければいけない箇所があるのでしょうか?
0051デフォルトの名無しさん
2006/03/05(日) 01:39:12という変数をテキストボックスに表示したいのですが
巧くいきません
String型とかに変換しないと出来ないのでしょうか?
0052デフォルトの名無しさん
2006/03/05(日) 02:38:11なんだろう?見てみたけど、VC++2005でも特にそういうのはなかったよ。
つまり仕様でないことは確か。
0053デフォルトの名無しさん
2006/03/05(日) 09:11:01意味もなくサイズ削ってもしょうがない。
0054デフォルトの名無しさん
2006/03/05(日) 09:17:56NT系限定でよいのならSetDlgItemTextWやSetWindowTextWなんかを使う。これが1番簡単。
9xでも動くようにしたければ、MSLUを使うか、
WideCharToMultiByteなどで一旦マルチバイト文字列へ変換してSetDlgItemTextAやSetWindowTextA。
或いはATLを使っているのなら、
SetDlgItemTextやSetWindowTextの引数にATL::CW2CT(hoge)でいける。
これはATL 7.0以上。それ以前だと少し違う。
0055デフォルトの名無しさん
2006/03/05(日) 10:37:32ありがとう
>>51です
>>SetDlgItemTextWやSetWindowTextWなんかを使う。これが1番
これってMFCのライブラですよね、余りよく知らないのですが
CLRのフォームアプリケーションでプログラム作っているのですが
CLRでMFCのライブラリ使えるのでしょうか?
色々試してみたのですが
wchar_t hoge[] = L"Kitty on your lap";
textBox1->Text=Convert::ToString(*hoge);
こう書くとコンパイルは通るのですが
"Kitty on your lap"の最初のkしか表示できないんですよね(;^ω^)
0056デフォルトの名無しさん
2006/03/05(日) 11:42:32使う方がいいと思うけど・・・・
って、そういうことを言ってるんじゃない?
0057デフォルトの名無しさん
2006/03/05(日) 17:20:40マネージドなら先に言え。
(const )wchar_t*はSystem::Stringのコンストラクタで変換できからこれでいけるはずだ。
textBox1->Text = gcnew System::String(hoge);
C++/CLIでなければgcnewをnewにでも直してみろ。
0058デフォルトの名無しさん
2006/03/05(日) 17:40:26005958
2006/03/05(日) 17:55:320060デフォルトの名無しさん
2006/03/07(火) 21:28:37これは間違いではないんですか?
一見、インスタンスの生成が完了してないのだから、危険な気がしますが・・・
0061デフォルトの名無しさん
2006/03/07(火) 21:30:560062デフォルトの名無しさん
2006/03/07(火) 21:38:430063デフォルトの名無しさん
2006/03/07(火) 21:52:48複数のコンストラクタから
共通に初期化メソッドを呼び出すこともある。
もちろん初期化してないメンバ変数を
使うようなメソッドが呼び出されないように
注意する必要があるし、例外についても気をつける必要があるけど。
006460
2006/03/07(火) 22:01:06ありがとございます。
0065デフォルトの名無しさん
2006/03/07(火) 22:50:50・・・
int i = m_strList..GetCount();
# warning C4244: '初期化中' : 'INT_PTR' から 'int' に変換しました。データが失われているかもしれません。
INT_PTR は int から typedef されてるからいいじゃないですか。
いちいちキャストしたり INT_PTR で変数を宣言しなきゃいけないですか?
0066デフォルトの名無しさん
2006/03/07(火) 22:58:44INT_PTRに限らず_PTRと付く型はWin32では32ビットだが、
Win64では64ビットになるという整数型。
だからLPCSTRとLPCTSTRのように本当は同じ型ではない。
0067デフォルトの名無しさん
2006/03/07(火) 23:17:200068デフォルトの名無しさん
2006/03/07(火) 23:27:452000年問題だって2038年問題だってそう。
0069デフォルトの名無しさん
2006/03/08(水) 00:31:46とりあえずDirectXのサンプルを動かしてみようと思っても全然でけへんのです。
インクルードファイルとかライブラリのディレクトリ設定はできたと思うんですけど、
未解決の外部シンボルってエラーが100個以上でます。
サンプルも動かせないのかこいつは。文句言うな動けって感じです。
0070デフォルトの名無しさん
2006/03/08(水) 00:36:36金払えって事じゃないですよね。
0071デフォルトの名無しさん
2006/03/08(水) 00:40:36プロジェクトに適切なlibファイルを指定したか?
0072デフォルトの名無しさん
2006/03/08(水) 02:34:38------------
error LNK2001: 外部シンボル ""protected: virtual struct AFX_MSGMAP
const * __thiscall CAboutDlg::GetMessageMap(void)const "
(?GetMessageMap@CAboutDlg@@MBEPBUAFX_MSGMAP@@XZ)" は未解決です。
------------
解決の方法が分からないのですが、どなたか教えていただけないでしょうか。
0073デフォルトの名無しさん
2006/03/08(水) 06:10:50VisualC++を使ってC言語を学びたいのですが
お試し版のような無料VisualBasicなどないのでしょうか?
もちろん合法であるものですが、あれば知っている方教えてください。
Expressを試したのですがデバックやコンパイルが出来なかったので・・
Expressでも普通に計算させてExcelに表示させることぐらいはできるのでしょうか?
0074デフォルトの名無しさん
2006/03/08(水) 06:12:57それと、Visual C++ 2005 Express Edition で
デバッグやコンパイルができない、なんていってるようじゃ、
使える物なんて無いと思うが。
0075デフォルトの名無しさん
2006/03/08(水) 06:15:36レスありがと〜
ガンバッテミル。。。
0076デフォルトの名無しさん
2006/03/08(水) 07:44:54Visual C++ 2005 Express Edition 質問箱
http://pc8.2ch.net/test/read.cgi/tech/1140806916/
0077デフォルトの名無しさん
2006/03/08(水) 08:36:390078デフォルトの名無しさん
2006/03/08(水) 09:59:17私がそのリンク先に行くのは早すぎる気がして、、初心者にすらなれていない超初心者など、、
でもなんとかExcel表示まで出来るようになりました。(気合で自己解決しました)
Express EditionというのはC++参考書のものとは少し違うのかな。
<表示までになんとなく変えたところ>
・#include <〜〜〜> ⇒ #include "〜〜〜"
これはExpressに限った事なのでしょうか?
・main(){〜〜〜} ⇒ int _tmain(int argc, _TCHAR* argv[]){〜〜〜}
メイン関数を一つのみのプログラムだったので今回は問題なかったのですが、
いくつかメイン関数を増やしてプログラムするときは上記を挿入すればよいのでしょうか?
何か他にも注意すべき点などあれば教えてください。
0079デフォルトの名無しさん
2006/03/08(水) 10:01:50#includeのは<>で平気だと思うが。
_tmainはプロジェクトのプロパティの文字セットをUnicodeからマルチバイトにすれば、int main()が使える。
0080デフォルトの名無しさん
2006/03/08(水) 10:15:18出来ました、ありがとです。
0081デフォルトの名無しさん
2006/03/08(水) 11:21:26DirectXSDKのディレクトリにある、LibとIncludeを
それぞれライブラリフォルダとインクルードフォルダに設定すればいいはずですよね。
Libの中にあるx64とかx86とかに設定しなおしても駄目だし、こいつ何なのって感じです。
0082デフォルトの名無しさん
2006/03/08(水) 11:41:22それはライブラリとインクルードファイルのありかを設定しただけ。
実際に使うと言わなければ使われない。
インクルードファイルは#includeで、
ライブラリファイルはプロジェクトのプロパティのリンカの追加の依存ファイルのところ。
0083デフォルトの名無しさん
2006/03/08(水) 13:38:50宣言しようとするとエラーにされます。
int _tmain(int argc, _TCHAR* argv[]){
WORD WINAPI (*GetVersion)(void);
....
}
とすると、「error C2059: 構文エラー : '('」を喰らいます。
どうやら WINAPI 宣言が引っかかっているようで、これを外すとコンパイルが
通ります。
しかし、関数ポインタで表現したい関数がそもそも WINAPIをつけて宣言されて
いるわけですが、
1.関数ポインタに何故 WINAPI宣言を付けられないのか。
2.WINAPI宣言をつけなくとも問題なく動作するのか。
どうなんでしょうか?
0084デフォルトの名無しさん
2006/03/08(水) 13:46:47+WORD (WINAP *GetVersion)(void);
0085デフォルトの名無しさん
2006/03/08(水) 13:47:32+WORD (WINAPI *GetVersion)(void);
0087デフォルトの名無しさん
2006/03/08(水) 14:07:41#include "windows.h"とかやってしまったのに、インクルードできてる、って
変ですよね?
本来ならば#include <stdio.h>とか#include <windows.h>でなければならない
はずなんですが。
#またMSの独自仕様か・・・。
0088デフォルトの名無しさん
2006/03/08(水) 14:23:38いいえ。
見慣れない書き方だけど、間違ってはいない。
ISO C/C++の仕様で#include "〜"でヘッダなどが見つからなければ、
#include <〜>と見なして探すことになっている。
008987
2006/03/08(水) 15:59:08ですね。すみません。
gccとかに慣れた身には、""で囲まれた部分へのパスはコンパイル時にコマンドラインで
指定するもんだ、と思っていたので。
たとえば、移植の際に障害になるようなシステム標準のヘッダファイルは、修整した
コピーを独自のディレクトリにつっこんで、そこから読み出すような動作をさせたい
時があります。
だから、"〜"で指定したファイルが見つからないからといってシステムのディレクトリに
探しに行くような仕様では都合がわるいな、と思ったわけです。
またMSの独自仕様なのか、と思ったわけで。
他にも<iostream.h>じゃなくて<iostream>じゃないとダメとか、coutはダメでstd::coutとか・・・。
0090デフォルトの名無しさん
2006/03/08(水) 16:25:11根本的なところでいろいろ誤解していそうだ。
""で囲んだインクルードファイルは、カレントになければ<>と同様に探すのはCの仕様。
<iostream.h>は過去のヘッダファイルで現在は<iostream>、
後者ではnamespaceを指定しない限り、namespace解決のためにstd::coutとする。
MSがどうとか厨臭いこと言う前に、もっと自分を磨きなさいな。
0091デフォルトの名無しさん
2006/03/08(水) 16:29:330092デフォルトの名無しさん
2006/03/08(水) 16:32:30>gccとかに慣れた身には、""で囲まれた部分へのパスはコンパイル時にコマンドラインで
>指定するもんだ、と思っていたので。
この辺も大誤解。
0093デフォルトの名無しさん
2006/03/08(水) 16:35:51>gccとかに慣れた身には、""で囲まれた部分へのパス
>はコンパイル時にコマンドラインで 指定するもんだ、
>と思っていたので。
もしかして -I オプションのこと言ってるの?
それは < > のインクルードパスじゃねぇの?
0094デフォルトの名無しさん
2006/03/08(水) 17:10:41だからそれは""のときにも(ローカルになければ)探す対象になるんだってばさ。
0095デフォルトの名無しさん
2006/03/08(水) 19:30:46やっと動きましたー!
API関係のライブラリ群がリンカの依存ファイルに
入れられてなかったのが原因だったみたいです。
存在しても宣言しなければ使えないんですねー。滅茶苦茶感動してます。
ありがとうございました。来てよかったです。
0096デフォルトの名無しさん
2006/03/08(水) 23:38:55VC++で勉強し始めてふと疑問に思ったのだが
VC++で作られたアプリってやっぱり全てWINMAINから始まっているんですかね?
0097デフォルトの名無しさん
2006/03/08(水) 23:42:190098デフォルトの名無しさん
2006/03/08(水) 23:43:53WINMAINから起動させない場合ってどういう時でしょうか?
どうやれば特定のメソッドから起動できます?
0099デフォルトの名無しさん
2006/03/08(水) 23:45:19というのを冗談にしても、VC++で用意されているものだけでもmain, wmain, wWinMain, _tmain, _tWinMainがある。
(DllMainは除いておく)
さらに自分でエントリポイントを決められるので、奇抜なことをしたいならどうぞ。
0100デフォルトの名無しさん
2006/03/10(金) 05:42:03ファイル名を扱う場合など、バッファのサイズはどのようにして決めれば良いのでしょう?
0101デフォルトの名無しさん
2006/03/10(金) 05:43:200102デフォルトの名無しさん
2006/03/10(金) 15:08:470103デフォルトの名無しさん
2006/03/10(金) 15:31:28あとの半分は?
0104デフォルトの名無しさん
2006/03/10(金) 17:30:07approximately 32,000 characters composed of components up to 255 characters in length.
To specify that kind of path, use the "\\?\" prefix.
0105デフォルトの名無しさん
2006/03/12(日) 11:24:36別クラス内で表示する場合、
Form1* a = new Form1();
a->showDialog();
と正常に処理できるのですが、
Form1 a;
a.showDialog();
だとエラーが出てしまいます。
どうして、ポインタ参照でしか表示することができないのでしょうか?
0106デフォルトの名無しさん
2006/03/12(日) 11:34:27前者は明示的にdeleteされるまで生存するが、後者はその関数終了時までしか生存できないので。
0107デフォルトの名無しさん
2006/03/12(日) 12:18:450108デフォルトの名無しさん
2006/03/12(日) 12:19:280109デフォルトの名無しさん
2006/03/12(日) 13:41:200110デフォルトの名無しさん
2006/03/12(日) 13:45:49何がいいんですかコレ?
0111デフォルトの名無しさん
2006/03/12(日) 17:31:46MSDNのC/C++リファレンスって日本語のは無いのでしょうか・・?
F1を押すと英語が・・
0112デフォルトの名無しさん
2006/03/12(日) 17:44:450113デフォルトの名無しさん
2006/03/12(日) 17:51:05自分でググった所どうもヴァージョンが古いもので解説しているみたいでして・・・
0114デフォルトの名無しさん
2006/03/12(日) 17:52:120115デフォルトの名無しさん
2006/03/12(日) 17:54:43MFCのリファレンスとかは日本語で出るのに・・・。
0116デフォルトの名無しさん
2006/03/12(日) 17:57:03すいませんでした、つい先ほど公式からDLしたので多分最新Ver.だと思います
0117デフォルトの名無しさん
2006/03/12(日) 19:45:15連続ですいませn
Microsoft Visual Studio 2005
Version 8.0.50727.42 (RTM.050727-4200)
Microsoft .NET Framework
Version 2.0.50727
インストールされている Edition: VC Express
Microsoft Visual C++ 2005 76542-000-0000011-00125
Microsoft Visual C++ 2005
ver.は↑の奴です
0118デフォルトの名無しさん
2006/03/12(日) 20:01:34なんか英語の多いよね。
インストールしたMSDNでは英語のAPI説明が、
Web上にあるMSDNでは日本語でひっかかったことあるよ。
まぁぐぐればどっか解説してるページにでもひっかかるし、その方が速いよ。
0119デフォルトの名無しさん
2006/03/12(日) 20:16:37そうですか、がんばってググります
別の質問ですがビルドしたexeは何所にあるんでしょうか?
0120デフォルトの名無しさん
2006/03/12(日) 20:18:530121デフォルトの名無しさん
2006/03/12(日) 20:48:390.何秒しか表示されないのですがこれは正常なんでしょうか?
0122デフォルトの名無しさん
2006/03/12(日) 21:09:16Ctrl + F5 で起動してみれば?
0123デフォルトの名無しさん
2006/03/12(日) 21:17:17ビルドエラーが発生しました。続行して最後に成功したビルドを実行しますか?
ではいを選択すると指定されたパスが見つからないとエラーメッセージが出ます・・・
0124デフォルトの名無しさん
2006/03/12(日) 21:21:45実行ファイルは生成されていないわけで、あたりまえ。
まずはビルドエラーを解消しなきゃね。
0125デフォルトの名無しさん
2006/03/12(日) 21:42:05ビルドエラーですか・・・
一応ググってみます
0126デフォルトの名無しさん
2006/03/12(日) 22:01:26初心者向けのサイトがあったかと思えばVerが全然違ったりして・・・
0127デフォルトの名無しさん
2006/03/12(日) 22:01:57ビルドエラーが出てるってことは、コンパイルかリンクの
いずれかでエラーが発生しているってことだから、
エラータブか出力タブに詳細な表示が出てるはずなんだけど。
0128デフォルトの名無しさん
2006/03/12(日) 22:03:210129デフォルトの名無しさん
2006/03/12(日) 22:19:49なんで分かりにくいVC++使うんだろう。素直にVBとかHSPとかにしておけばいいのに。
del6とかもあるんだし。
0130デフォルトの名無しさん
2006/03/12(日) 22:20:49VBとかHSPとかってのは簡単なんでしょうか?
0131デフォルトの名無しさん
2006/03/12(日) 22:21:01>>126はたったの20分か。素早いな。
0132デフォルトの名無しさん
2006/03/12(日) 22:28:34簡単。詳細はスレ違いだから、該当スレで聞いておくれ
0133デフォルトの名無しさん
2006/03/12(日) 22:33:080134デフォルトの名無しさん
2006/03/12(日) 22:56:07ただ、気にしなければいけない項目は大きく減る。
一眼レフとバカチョンカメラの違いのようなもんじゃないか?
0135デフォルトの名無しさん
2006/03/12(日) 23:07:410136デフォルトの名無しさん
2006/03/13(月) 05:16:00馬鹿に限って「プログラミング=VC++」なんて夢を抱いたりしちゃうもんだから土ツボにはまる罠。
馬鹿は大人しくVBAでもやってなさいってこった。
0137デフォルトの名無しさん
2006/03/13(月) 05:19:02購入したときはウィンドウのなかに左に検索文字列を入力する画面があって
右に検索結果が表示されていて、右下に検索文字列にヒットした結果が表示されていました。
が、しかし検索文字列を入力する部分が別ウィンドウになってしまって元に戻らなくなりました。
購入したときのウィンドウに戻すにはどうすればいいでしょうか?お願いします。
購入したときは以下のような構成だった。
--------------------------------------------------
| |
|検索文字列入力 | ここに検索結果にリンクしている記事
| |
| |
| |
| |
| |
| |
| |-----------------------------------
| |検索結果 何件見つかりました
| |
| |
0138デフォルトの名無しさん
2006/03/13(月) 05:20:23申しわけありません、書き込むスレッド間違えたのでほかで質問します。
0139デフォルトの名無しさん
2006/03/13(月) 05:24:21教えてください、
0140デフォルトの名無しさん
2006/03/13(月) 05:46:37「元に戻せなくなりました」だろうなぁ。
0141デフォルトの名無しさん
2006/03/13(月) 06:36:18よいのでしょうか?
CWnd::GetSafeHwnd()を呼び出そうにも、そんな名前はシラネとか言われてしまいます。
0142デフォルトの名無しさん
2006/03/13(月) 06:43:200143デフォルトの名無しさん
2006/03/13(月) 07:16:50あったとすると、そのコンソールウィンドウに
描画できるんだろうか。無理だと思うけどなぁ。
0144137
2006/03/13(月) 07:50:110145141
2006/03/13(月) 07:53:450146デフォルトの名無しさん
2006/03/13(月) 08:25:06FindWindowはできたと思う。
ウィンドウハンドルを使って何の意味があるかはわからないけど。
0147デフォルトの名無しさん
2006/03/13(月) 10:52:00#include <windows.h>
BOOL IsWindows9x() { return (GetVersion() >= 0x80000000); }
int main(int argc, char *argv[])
{
HWND hWnd;
HDC hdc;
char szOldText[80], szId[32], szTemp[32];
int x, y;
GetConsoleTitle(szOldText, sizeof(szOldText));
do {
wsprintf(szId, "grph%08X", GetTickCount());
SetConsoleTitle(szId);
do {
Sleep(100);
GetConsoleTitle(szTemp, sizeof(szTemp));
} while (lstrcmp(szId, szTemp));
if (IsWindows9x())
hWnd = FindWindowEx(NULL, NULL, "tty", szId);
else
hWnd = FindWindowEx(NULL, NULL, "ConsoleWindowClass", szId);
} while (hWnd == NULL);
SetConsoleTitle(szOldText);
if (IsWindows9x())
hWnd = FindWindowEx(hWnd, NULL, "ttyGrab", NULL);
hdc = GetDC(hWnd);
for(y = 0; y < 256; y++)
for(x = 0; x < 256; x++)
SetPixelV(hdc, x, y, RGB(x, y, (510 - x - y) / 2));
ReleaseDC(hWnd, hdc);
return 0;
}
0148147
2006/03/13(月) 10:57:23GetConsoleWindow()で十分だったりする.
0149デフォルトの名無しさん
2006/03/13(月) 13:32:42絵を書いちゃうぞ! コマンド名はもちろん sl.exe
0150デフォルトの名無しさん
2006/03/13(月) 15:02:04知ってる人、教えてください。かなり昔なはずなんだけど。
0151デフォルトの名無しさん
2006/03/13(月) 15:20:55ぐぐったらみつけた。
ttp://hwb.ecc.u-tokyo.ac.jp/current/CDD1B8ECBDB82F56697375616C20432B2B.html
0152デフォルトの名無しさん
2006/03/13(月) 15:31:56おまけでもういっこ
ttp://www.emsps.com/oldtools/mscppv.htm
0153デフォルトの名無しさん
2006/03/13(月) 17:35:12プロフェッショナル 98,000
0154141(本物)
2006/03/13(月) 18:42:24つか、ある出来あいのライブラリをコンソールアプリに結合してテストしようとしたのですが、
意味なく?WHNDを要求するので困ってました。
>>145 成りすましして楽しいか? 人間のクズは死ね。
0157デフォルトの名無しさん
2006/03/13(月) 21:52:190158141(本物)
2006/03/13(月) 22:09:15>>157 サンクス。NULLでも動きましたが、ちょっと心配。
ちなみに、>>147のサンプルだと、char [] をLPCWSTRにキャストしやがれみたいな
エラーが出まくりです。VC8だと明示的にキャストしないとまずいようですね。
0159デフォルトの名無しさん
2006/03/13(月) 22:12:430160141
2006/03/13(月) 22:21:12他人を屑呼ばわりする暇に、少しはこの辺のスレでもよんで勉強したらどうだ?
VC8はディフォルトでUnicodeを使う設定になっているはずだぞ。
それと、「ある出来合いの」ライブラリの仕様を確認しないでNULLを渡すなんて狂気の沙汰だ。
#あ、だから他人を屑呼ばわりするのか。
0161デフォルトの名無しさん
2006/03/13(月) 22:22:240163141
2006/03/13(月) 22:27:570164デフォルトの名無しさん
2006/03/14(火) 00:02:10漏れ.....てんならシズクだな。
0165デフォルトの名無しさん
2006/03/15(水) 14:32:06どっちを使ったほうが良いとかってあるの?
unsigned intとかよりもDWORD使った方が良いの?
0166デフォルトの名無しさん
2006/03/15(水) 20:10:24stdafx.hというのはデフォルトでは用意されておらず、
自分で作るものなのでしょうか?
プリコンパイル済みヘッダーがないとかなんとかエラーが出て
#include "stdafx.h"をインクルードすればいいとあったのですが
今度はstdafx.hがないと怒られる始末です。
0167デフォルトの名無しさん
2006/03/15(水) 20:31:59新しいプロジェクトを作るときに空のプロジェクトを選ばなければ、
stdafx.hは自動的に作られる。
だから新しいプロジェクトを作り直す方が楽。
0168デフォルトの名無しさん
2006/03/15(水) 20:33:280169デフォルトの名無しさん
2006/03/15(水) 20:36:48wchar_tとWCHARは同じ。
ただしwchar_tはCのヘッダでtypedefされているかC++組み込み型。
WCHARはWindows.hの中の中でwchar_tからtypedefされている。
unsigned intとDWORDの関係は微妙。
unsgined intはただの符号無し整数型で、DWORDは32ビット符号無し型。
ただWin16のときにDWORDはunsgined longの意味で使われていたという前歴を持ち、
現在でもWinAPIで多用されていると言う実情がある。
0170デフォルトの名無しさん
2006/03/15(水) 20:43:44う〜ん、要は特に規則とかはなく、好きな方使えってことか
詳しくありがとう
0171デフォルトの名無しさん
2006/03/15(水) 22:00:43VC++6でやっています。
0172デフォルトの名無しさん
2006/03/15(水) 22:59:24インクルードファイルでクラス定義の参照が出来たり
出来なかったりで悩んでいます。
具体的にはClassA.hでClassAの定義、ClassB.hでClassBの定義、
ModuleC.cpp先頭でClassA.h、ClassB.hの順番でインクルードしています。
ClassB.h内ではClassA型のメンバ変数を宣言していますが、これが
エラーになったりならなかったり・・・何が原因でしょうか?
ClassB.h内でClassA.hをインクルードすれば確実に通りますが、
出来ればインクルードはModuleC.cpp内に統一したいと考えています。
0173デフォルトの名無しさん
2006/03/15(水) 23:08:42昔ながらのソケット通信のつもりでしたが、MSDNを読んでみると次のように
3つほど紹介されていたので迷っています。
1.ASP.net:Microsoft.NetのFoudationClassの豊富な機能が利用可能
2.ATLでWebサービスまたはISAPI:DCOMが簡単に作成可能
3..Netリモート処理:16bitOSでも利用可能
出来ればDataSetのやり取りを手軽に実現したいのですが、IISを立てるのが
許されない環境の場合はソケット通信しか無いでしょうか?
0174デフォルトの名無しさん
2006/03/15(水) 23:11:20ClassB.h内でClassA.hをインクルードせず、
ClassAをインスタンス化するのは無理。
ただし、前方宣言してClassA*型、もしくはClassA&型のメンバにすればコンパイルは通る。
その場合にしても実装ファイル(たとえばClassB.cpp)内でClassA.hをインクルードしなければ、
インスタンス化できないし、メソッドもコールできない。
インクルードしなければClassBにとってClassAがなんだかわからない状態なんだから当たり前。
(サイズがわからなきゃインスタンス化できないし、メソッド名だってわからない)
0175デフォルトの名無しさん
2006/03/15(水) 23:18:14日本語が変
0176デフォルトの名無しさん
2006/03/15(水) 23:18:26int型のタブ区切りというのが良く判りませんが、
EditboxのDDX変数がm_strEditTextだとして
int iNum1=1;
int iNum2=2;
int iNum3=3;
m_strEditText.Format("%d %d %d", iNum1, iNum2, iNum3);
UpdateData(FALSE);
とかじゃ駄目ですか?
0177デフォルトの名無しさん
2006/03/15(水) 23:22:31すみません日本語が変でした
int型のデータがタブ区切りで保存されているファイルを読みこんで〜、でした
0178デフォルトの名無しさん
2006/03/15(水) 23:23:49問題ないでしょ?というか、何のエラーが出るんだ。
むろん、ほかの翻訳単位相手なら、常にb.hをincludeする前に、
a.hをincludeしているか確認する必要がある
0179デフォルトの名無しさん
2006/03/15(水) 23:25:07int i[] = { 100, '\t', 200, '\t', 300};
fwrite(i, 1, sizeof i, fp );
0180デフォルトの名無しさん
2006/03/15(水) 23:27:11そうです
1(タブ)2(タブ)3(タブ)4
5(タブ)6(タブ)7(タブ)8
9(タブ)10(タブ)11(タブ)12
・
・
・
という感じに保存しています
0181デフォルトの名無しさん
2006/03/15(水) 23:28:03お答えありがとうございます。
私もそう思っていたのですが、なぜかこのパターン
(ClassB.h内でClassA.hをインクルードしない)で
コンパイルの通っているファイルがあるのです。
(同じプロジェクトに共存しています)
注意深く見比べてみましたが前方宣言のようなものも無く、
どちらのクラスもヘッダ内にメソッド定義までしている
所も同じなので原因が判らずにいます。
できれば、共通で使用するヘッダは一箇所にまとめたいと
思ったのですが・・・
0182デフォルトの名無しさん
2006/03/15(水) 23:30:32確証はもちろんあるわけだよね?
0183デフォルトの名無しさん
2006/03/15(水) 23:33:55a.h b.hの順序でincludeしても、何故かエラーになってしまうのです。
今手元に環境が無いので正確には覚えていませんが、ClassA型の
メンバ変数宣言のところで
「;が必要です」
「ClassAは不明なデータ型です」
などのエラーが出てきます。
同じファイルでClassB.hにClassA.hをインクルードすると
コンパイル可能で、期待通りの動作をしてくれます。
0184デフォルトの名無しさん
2006/03/15(水) 23:37:19はい、コンパイルの通っている別のクラス(ClassDとします)
ではヘッダ内にインクルード文はありません。
その代わり、stdafx.h内でインクルードされており、
stdafx.hはModuleC.cppの先頭でClassD.hよりも前にインクルード
されています。
0185デフォルトの名無しさん
2006/03/15(水) 23:39:16thx!
空で作ったプロジェクトで、ないと怒られるのは理不尽だな〜
0186デフォルトの名無しさん
2006/03/15(水) 23:45:04追加するときは中身確認してますが、あの辺のヘッダ名うろ覚えなので・・・
0187デフォルトの名無しさん
2006/03/15(水) 23:50:33>>174の通りで、他には何もない。
とりあえず、ビルドじゃなくてリビルドすれば?
ヘッダファイルを書き換えたときに再コンパイルされてないんじゃないの?
それにしてもstdafx.hにユーザ定義のクラスを入れるとは怖いことしますね。
0188デフォルトの名無しさん
2006/03/16(木) 00:09:06参照回数が多く、あまり変更されないプロジェクト専用のインクルード
ファイルをインクルードして良いと書いてあったと思うのですが
プロジェクト内で共通に参照するヘッダでもインクルードは避けるべき
でしょうか?
(現在の現場の既存のモジュール構成がこうなっているのです)
でも最初に見たときは違和感を感じましたので>>187さんが>>174で
ご指摘のとおり、使うクラスで都度インクルードすることにします。
0189デフォルトの名無しさん
2006/03/16(木) 00:17:21自分では動作確認する環境が無いのですが、
http://www.orchid.co.jp/computer/cschool/csv1.html
を少し修正すれば使えないでしょうか?
でも、fscanfで簡単に読み込みとは行かないですかね?
(暫くC言語触ってないので覚えてないですけど)
0190デフォルトの名無しさん
2006/03/16(木) 01:23:57そのページのソース、無茶苦茶だな。
参考にしない方が身の為だぞ。
>>180
普通にfscanf()でも使えば?
行単位であることに意味があるならfgets()+sscanf()で。
0191デフォルトの名無しさん
2006/03/16(木) 09:51:45使っているとき、テンプレートの展開でエラーが出る
ことがあります。しかしエラーメッセージには
テンプレートの定義のファイルと行が示されます。
自分のコードのどこで展開された結果エラーが出ているのかを
知る事はできないのでしょうか?
0192デフォルトの名無しさん
2006/03/16(木) 16:18:15出力ウィンドウのほうを見れば、どこから呼び出しているかが書いてある。
0193デフォルトの名無しさん
2006/03/16(木) 16:53:32通常とは逆にファイルの終端から読み込んで
先頭で終わるプログラムはどう書けばいいですか?
読み込むファイルの行数は常に増えて不定です。
0194デフォルトの名無しさん
2006/03/16(木) 17:18:300195193
2006/03/16(木) 17:31:470196いかん、ここはVCスレだった
2006/03/16(木) 17:47:22FILE * fp = popen("/bin/tail -r targetFile", "r");
0197>>196 いや、VCもCだからOK
2006/03/16(木) 18:03:15fseek
0198デフォルトの名無しさん
2006/03/16(木) 19:45:37具体的にはデバッグ実行中、一時停止の後F10キーを押しても飛ばされてしまう行があったりとか
(この行にはブレークポイントも付けられませんでした。宣言文ではないのですが。)
クィックウォッチで変数の値を見ようとしても、明らかにスコープ内なのに
シンボル"var" が見つかりません。
と出たりしてしまいます。
過去ログにリビルドしたら直ったというのもあったので、試してみましたが駄目でした。
環境は Visual Studio 6.0
VC++6.0
Windows XP です。
何か思い当たる節などありましたらご助言頂けると幸いです。よろしくお願いします。
0199デフォルトの名無しさん
2006/03/16(木) 19:53:14最適化してない?
勿論、Debugビルドだよね?
0200198
2006/03/16(木) 20:56:41おかげさまで直りました!
本当にありがとうございました。
---
最適化なんて知らなかったし…。
ワークスペース丸ごともらって来ちゃったからなぁ…。
0201デフォルトの名無しさん
2006/03/16(木) 23:27:060202デフォルトの名無しさん
2006/03/17(金) 02:04:44何処においたらいいでしょうか?
パスの設定がわかればいいんだけど
0203デフォルトの名無しさん
2006/03/17(金) 06:12:180204デフォルトの名無しさん
2006/03/17(金) 22:14:05なんてステキな日本語なんだ。
0205デフォルトの名無しさん
2006/03/18(土) 01:44:400206デフォルトの名無しさん
2006/03/18(土) 09:48:27MSDNを見て真似て見ましたが、巧くいきません
ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.TECHART.v10.ja/jpdllpro/html/_win32_loadlibrary.htm
LoadLibrary
指定された実行可能モジュールを、呼び出し側プロセスのアドレス空間内にマップします。
追加のロードオプションを指定するには、LoadLibraryEx 関数を使います。
HMODULE LoadLibrary(
LPCTSTR pstorec.dll // モジュールのファイル名
);
これだでは使えないのでしょうか?
0207デフォルトの名無しさん
2006/03/18(土) 10:07:35まさかこれをコピペした?
HMODULE LoadLibrary(
LPCTSTR pstorec.dll // モジュールのファイル名
);
0208デフォルトの名無しさん
2006/03/18(土) 10:42:51デツ
う、うん
0209http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 19:41:10もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0210デフォルトの名無しさん
2006/03/19(日) 16:03:14>>209は氏ね
0211デフォルトの名無しさん
2006/03/21(火) 18:03:00VC++をこれから勉強していくのですが、
お勧め本とか教えていただけないでしょうか?
0212デフォルトの名無しさん
2006/03/21(火) 21:41:51http://www.amazon.co.jp/exec/obidos/ASIN/4798010960
0213211
2006/03/22(水) 00:48:41すみません、申し訳ありませんが逆引を薦められても困ります。
C言語、C++言語についてはまったくの初心者というわけではないです。
VC++に関しては初心者ですが・・。
できればVC++6の本をお勧めしていただければ幸いです。
0214デフォルトの名無しさん
2006/03/22(水) 00:58:540215デフォルトの名無しさん
2006/03/22(水) 01:25:48じゃわからん。
C++なら
クラスがわかる
継承の概念がわかる
オーバーロード、オーバーライドがわかる
ストリームがわかる
STLは使うくらいならできる
operatorのオーバーロードがわかる
例外安全のテクニックがわかる
C++でオブジェクト指向設計ができる
STLを使いこなせる
メタプログラミングに造詣が深い
など
0216デフォルトの名無しさん
2006/03/22(水) 03:25:11そのように取捨選択できるのなら、推薦書スレにでも行って
自分で選べばいいと思うんだが。
0217デフォルトの名無しさん
2006/03/22(水) 04:46:16>>212はIDEの使い方、MFCやATL、COMの使い方まで網羅してる
質問のレベルからしてまずこれ読んだ方がいいと思う
逆引きシリーズでVC6向けも出てる
0218デフォルトの名無しさん
2006/03/22(水) 12:23:28まあ悩むほどの値段でもないし
0219211
2006/03/22(水) 13:58:44まったくの初心者ではないというのは
上の例でいくと
クラスがわかる
継承の概念がわかる
オーバーロード、オーバーライドがわかる
ストリームがわかる
STLは使うくらいならできる
operatorのオーバーロードがわかる
例外安全のテクニックがわかる
C++でオブジェクト指向設計ができる
といった感じです。
UNIXのCとC++の経験ありで、一番長く付き合ったのは
JAVAですので、ポインターも分かりますしオブジェクト指向も理解しているつもりです。
よろしくお願いします。
0220デフォルトの名無しさん
2006/03/22(水) 14:36:09林 晴比古
新Visual C++ NET入門 ビギナー編
0221デフォルトの名無しさん
2006/03/22(水) 14:44:26マルチ死ね。
0222デフォルトの名無しさん
2006/03/22(水) 15:32:330223デフォルトの名無しさん
2006/03/22(水) 22:52:46とりあえず手始めに下のHTMLをIEで表示したときに、ボタンをクリックすると
HelloWorldという文字列をAlertダイアログで出力するようなものを作ろうと思っています。
どこかこのような初歩的なことを分かりやすく解説しているページかor書籍はないでしょうか?
標準講座MFC6.0という本を読んでいますがどうもよくわかりません。
私のスキルとしては、VCを使って、同様の動作をするダイアログベースのアプリケーションであれば何とかつくることができます。
<html>
<head>
<OBJECT ID="DAControl"
CLASSID="?????????????????">
</OBJECT>
<script language="javascript">
function hello(){
alert( DAControl.hello);
}
</script>
</head>
<body>
<input type="button" onClick="hello()" value="hello">
</body>
</html>
0224デフォルトの名無しさん
2006/03/24(金) 00:49:35その命令を解説しているサイトはありませんか?
0225デフォルトの名無しさん
2006/03/24(金) 00:55:510226デフォルトの名無しさん
2006/03/24(金) 01:13:37ググっても見つかりませんでした。
やっぱり無いのですか。
0227デフォルトの名無しさん
2006/03/24(金) 03:04:470228デフォルトの名無しさん
2006/03/24(金) 03:14:160229デフォルトの名無しさん
2006/03/24(金) 07:22:43sed だか awk でもできるのかな。よく知らんが。
0230デフォルトの名無しさん
2006/03/24(金) 07:27:290231デフォルトの名無しさん
2006/03/24(金) 07:46:540232デフォルトの名無しさん
2006/03/24(金) 08:48:550233デフォルトの名無しさん
2006/03/25(土) 19:53:13本を買ってきてリストを本文の通り打ち込んでも
コンパイラエラーになって困っています。
何回も確認しましたがコードは一字一句間違っていません。
コンパイラにつけるオプションが原因なのでしょうか?
オプションは/GXにしています。以下プログラムとエラーの一部です。
どなたか教えてください。
#include<windows.h>
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE , LPSTR, int )
{
MSGmsg;
HWNDhwnd;
hwnd = CreateWindow( "STATIC",
"スタティックコントロール",
SS_CENTER |
SS_NOTIFY | WS_VISIBLE ,
100, 100, 100, 100,
HWND_DESKTOP,
NULL, hInstance, NULL );
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/out:test.exe
test.obj
test.obj : error LNK2019: 未解決の外部シンボル __imp__CreateWindowExA@48 が関
数 _WinMain@16 で参照されました。
test.exe : fatal error LNK1120: 外部参照 1 が未解決です。
NMAKE : fatal error U1077: 'cl' : リターン コード '0x2'
Stop.
0234デフォルトの名無しさん
2006/03/25(土) 21:03:060235側近中の側近 ◆0351148456
2006/03/25(土) 21:17:56くたばれVisual C++(超初心者用)
と読んでしまいました
0236デフォルトの名無しさん
2006/03/25(土) 23:21:44int型のほかのメンバ変数だと普通に出力できてるのですが何故でしょうか。
VC+6使用です。
0237デフォルトの名無しさん
2006/03/25(土) 23:53:41ありがとうございました。
cl /GX test.cpp user32.lib
としたらうまくいきました。
0238デフォルトの名無しさん
2006/03/26(日) 00:19:04見てると、グレーになった文字の部分がときおりあるのですが、
どういう部分がグレーになるのでしょうか?
それとも自動ではなく、意図的にそこの部分をグレーに設定してる
のでしょうか?
0239age
2006/03/26(日) 00:25:19特定のstructを適当にテキストに変換して、逆にテキストから復元出来るように
したいのですが、C++で一般的な手法ってありますか?
ちなみに、structには、ポインタ型やstd::vector等は含まないものです。
0240デフォルトの名無しさん
2006/03/26(日) 00:27:220241デフォルトの名無しさん
2006/03/26(日) 06:18:32プリプロセッサではじかれるモノは
灰色になる。
とはいえ、どこまで実際のコンパイル時の
条件を追っかけてくれてるかはわかんないけど。
0242デフォルトの名無しさん
2006/03/26(日) 06:33:100243デフォルトの名無しさん
2006/03/26(日) 06:47:200244デフォルトの名無しさん
2006/03/26(日) 06:55:31やっぱないのか、VCなんていらないんだけどなぁ
0245デフォルトの名無しさん
2006/03/26(日) 07:00:22VCいらないって言う人がなんでこのスレッドにいるの?
0246デフォルトの名無しさん
2006/03/26(日) 07:12:43そうムキになんなよ
0247デフォルトの名無しさん
2006/03/26(日) 18:46:33export template<class T> .....
のようなexport指定子ってサポートされてないんだね。
最近できた仕様らしいので、間に合わなかったのか?
0248デフォルトの名無しさん
2006/03/26(日) 18:50:060249デフォルトの名無しさん
2006/03/26(日) 19:01:060250デフォルトの名無しさん
2006/03/26(日) 23:16:31(LPCTSTR)csText
0251デフォルトの名無しさん
2006/03/27(月) 21:22:18当方今までC・C++でHELLO WORLDから入って
ファイル操作や、計算だのやってきたものなのですが(CUIインターフェースしかやってない)
GUIの勉強がしたいのです
どのようにCでGUIを作成していくのか、どこか参考になるスレやサイト
CでGUIを作成していく課程の簡単な説明などお教えください
0252デフォルトの名無しさん
2006/03/27(月) 21:47:16マルチ
http://pc8.2ch.net/test/read.cgi/tech/1140269442/951
0253デフォルトの名無しさん
2006/03/28(火) 02:17:56ありがとうございます、いまその方法で解決しました。
0254デフォルトの名無しさん
2006/03/28(火) 10:13:230255デフォルトの名無しさん
2006/03/28(火) 13:29:04Boost.Serializationかな。
0256デフォルトの名無しさん
2006/03/29(水) 21:45:52http://support.microsoft.com/default.aspx?scid=kb;ja;JP175030
0257デフォルトの名無しさん
2006/03/30(木) 10:13:58ここにあるのをやってみようと思ったら
MSVCRTD.lib(wcrtexew.obj) : error LNK2001: 外部シンボル "_wWinMain@16" は未解決です
Release/test.exe : fatal error LNK1120: 外部参照 1 が未解決です。
と出てしまう。
環境 XP 使用ソフトVC++6.0パーソナル
WIN32 アプリケーションでプロジェクトを作成して、そこにソースぶちこんでるだけなのに
つーかこのサイトイントロダクションのところからエラーがあったりして萎えるんだけど
あとメールをしても返事がないらしい
以下にソースを載せるので、誰かどうしたら出来るか教えてください
0258デフォルトの名無しさん
2006/03/30(木) 10:14:51#include <string.h>
void ShowMyText(HWND);
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_PAINT:
ShowMyText(hWnd);
break;
default:
return(DefWindowProc(hWnd, msg, wParam, lParam));
}
return (0L);
}
void ShowMyText(HWND hWnd)
{
HDC hdc;
PAINTSTRUCT paint;
LPCSTR str = "HELLO WORLD";
hdc = BeginPaint(hWnd, &paint);
TextOut(hdc, 10, 10, str, lstrlen(str));
EndPaint(hWnd, &paint);
return;
}
0259デフォルトの名無しさん
2006/03/30(木) 10:17:15誰か助けて。。。もうこの理不尽なエラーにイライライライラして
0260デフォルトの名無しさん
2006/03/30(木) 10:30:08なんだよ、このサイト。すげぇわかりにくい
何がネコでもわかるだ。ネコにでも伝わるような文章かけよ、クズ
0261デフォルトの名無しさん
2006/03/30(木) 10:37:330262デフォルトの名無しさん
2006/03/30(木) 10:52:430263デフォルトの名無しさん
2006/03/31(金) 09:56:460264デフォルトの名無しさん
2006/03/31(金) 10:05:23たいていは多バイト文字がらみとポインタを typedef
した型名で L がついてる奴がらみだったり、くらいだろ?
APIそのものの使い方が変わってる訳じゃないんだから、
そんなの時代の流れにあわせて自分でいじりながら
コンパイル通せばいいと思うんだがなぁ。
0265デフォルトの名無しさん
2006/03/31(金) 10:36:12まだapi使うの早いだろ
0266デフォルトの名無しさん
2006/03/31(金) 10:49:25そのプログラムの中味はこの2行ぐらいだぞ
あとはどうでもいい部分
LPCSTR str = "HELLO WORLD";
TextOut(hdc, 10, 10, str, lstrlen(str));
0267デフォルトの名無しさん
2006/03/32(土) 15:49:06いい加減 Unicode 対策をしようと思って、Winmain を _tWinMain にしたら、リンクエラーが出ました。
> MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
エントリポイントを _tWinMain にすればうまくいきましたが、
_tWinMain を使ってる人は、プロジェクトを作るごとにわざわざエントリポイントの設定を行っているのですか?
2005 はデフォルトで Unicode 対応になっているのに、ちょっと不自然に思っての質問です。
よろしくお願いします。
0268デフォルトの名無しさん
2006/03/32(土) 16:32:54ネコの顔の絵が邪魔じゃなくて
すげぇ読みやすい
イライラしない
0269267
2006/03/32(土) 17:06:22tchar.h をインクルードすれば、エントリポイントを変更せずにすみました。
ありがとうございました。
0270デフォルトの名無しさん
2006/04/02(日) 02:51:03まるで
ネコでものサイト
ネコの顔の絵が邪魔で
すげぇ読みにくい
イライラする
と言ってるようなもんだな。天才だよお前。
0271デフォルトの名無しさん
2006/04/02(日) 20:42:29クラスAにクラスB・C・Dをそれぞれ保持させています。
そのクラスB・C・Dでそれぞれクラスxの機能を使用したいのですが
それぞれにクラスxを保持させる以外にいい方法はないでしょうか。
アドバイスをお願いします。
0272デフォルトの名無しさん
2006/04/02(日) 20:50:300273デフォルトの名無しさん
2006/04/02(日) 21:04:120274デフォルトの名無しさん
2006/04/03(月) 01:03:10一応答えておくとBridgeパターン。
0275デフォルトの名無しさん
2006/04/03(月) 14:36:20言語:C++
Win32アプリケーション
エディットボックスやボタンなどのプロパティ(FontSize、Visible等)を
リソースエディタではなくプログラムの方で動的に変更することってできるのでしょうか
0276デフォルトの名無しさん
2006/04/03(月) 15:56:220277デフォルトの名無しさん
2006/04/03(月) 15:56:24やったことはないが、edit box はその hWnd から edit control が取り出せる
んじゃね。show, hide, enable, gray も hWnd 対象でできる。
0278デフォルトの名無しさん
2006/04/04(火) 13:17:18直線が描かれてしまいます。どうすればピクチャボックス内に収められますか?
0279デフォルトの名無しさん
2006/04/04(火) 13:30:240280デフォルトの名無しさん
2006/04/04(火) 13:56:370281デフォルトの名無しさん
2006/04/04(火) 14:31:48処理をしたかったんです。
ピクチャボックス上での座標の計算値は必ずしもピクチャボックスには収まらないので
困っていましたが、SelectClipRgnで簡単にクリッピングできると知りました。
ありがとうございます。>>279
0282デフォルトの名無しさん
2006/04/06(木) 16:40:24以下のようなソースコードの、二つ目のCMainDialogの「~」ってなんでしょうか?
調べてもよく分かりません。
よろしくご教授願います。
CMainDialog::CMainDialog(void)
{
m_dwID = IDD_MAIN;
}
CMainDialog::~CMainDialog(void)
{
}
0283デフォルトの名無しさん
2006/04/06(木) 16:41:350284デフォルトの名無しさん
2006/04/06(木) 16:48:08デストラクタ
0285デフォルトの名無しさん
2006/04/06(木) 16:48:09オブジェクトが破棄される前に一度呼ばれる
0286デフォルトの名無しさん
2006/04/06(木) 17:52:50CHAR型に#FFDDEEのようなカラーコードが入っていたら
int型に0xFF、0xDDと個別に入れるようにするにはどうしたらいいのでしょうか
よろしくお願いします
0287デフォルトの名無しさん
2006/04/06(木) 18:02:55GetBValue(), GetGValue(), GetRValue()
0288デフォルトの名無しさん
2006/04/06(木) 18:06:43CHAR型がどんなものか知らんが、取り敢えず文字列ならこんなもんで。
{
char * str = "#ffddee";
int r, g, b;
sscanf(str, "#%2x%2x%2x", &r, &g, &b);
printf("%#x, %#x, %#x\n", r, g, b);
}
0289デフォルトの名無しさん
2006/04/06(木) 18:10:01自動的に振り分けてくれるツールだれか作ってくれ
0290287
2006/04/06(木) 18:10:28たしかにそんな感じだ。
プッ こいつCHAR型とか書いてるよ、とか思ってた自分がチョー恥さらし
0292287
2006/04/06(木) 18:23:47そういえばそうだった、普段htmlとかないから、ここみて、
プッ こいつ16進の書き方もしらねーのかって思ってた。
>int型に0xFF、0xDD
って、あるから、16進の書き方しらないってことはないんだよな、
こっちの勝手な勘違い。
0293286
2006/04/06(木) 18:28:25上記のコードで出来ました、ありがとうございました
>>287
次回から質問するときは万人に判るように質問したいと思いますorz
ありがとうございました
0294デフォルトの名無しさん
2006/04/06(木) 20:25:28そのヘッダはインクルードしてるから当然コンパイルは通るんだけどリンカで
外部参照が解決できないってエラーが出た。
何が原因として考えれれるでしょうか?
0295デフォルトの名無しさん
2006/04/06(木) 20:27:55libなりcppなりも参加させよう
0296デフォルトの名無しさん
2006/04/06(木) 20:28:290297デフォルトの名無しさん
2006/04/06(木) 20:29:25::って何?
プラットホームSDK?
もしそうならどっちを使ったらいいの?
0298デフォルトの名無しさん
2006/04/06(木) 20:30:48速レスありがとうございます。
リンカのオプションで追加参照、追加インクルードもしてます。
cppは参加してないけどlibが居ればリンクは出来るんですよね?
0299デフォルトの名無しさん
2006/04/06(木) 20:33:06グローバル
aaa::bbb() ならaaaという名前空間のbbb()という関数のことを意味する。
::bbb()ならグローバルな名前空間のbbb()を意味する。
0300デフォルトの名無しさん
2006/04/06(木) 20:35:45もう少し具体的に。
単色の壁紙じゃないんだから、「色別に分けろ」と人間に命令したってどうやって分けるか
判断できないだろ。
後、人に物を頼むときの口の利き方を覚えろ。
0301デフォルトの名無しさん
2006/04/06(木) 20:37:01ありがとうございます。
#ちなみに今のが2ちゃんねる初書き込みです。どきどき。
Win32 APIを使う場合、あってもなくえも一緒って事ですかね
サンプルコードで、あったりなかったりするので・・・
0302デフォルトの名無しさん
2006/04/06(木) 20:39:07そのcppがコンパイルされた結果のobjが詰まっていたりするlibなら。
0304デフォルトの名無しさん
2006/04/06(木) 20:47:09例えば、CWndの派生クラスを作ったとする。
その派生クラスの中でGetWindowRect()を呼ぶとCWnd::GetWindowRect()を呼ぶことになるし、
::GetWindowRect()を呼ぶとグローバルの(つまりAPIの)GetWindowRect()を呼ぶことになる。
だから必ずしも「あってもなくても一緒」というわけでもない
0305デフォルトの名無しさん
2006/04/06(木) 20:51:45MFCのCWndって各APIをラップしたメソッドが実装されてるって
事ですよね?
だから生のAPIを呼ぶ時は「::」つきで、CWndのメソッドを呼ぶ
時は無しでって事ですよね?
0306デフォルトの名無しさん
2006/04/06(木) 20:53:44追記:
もちろんすべてのAPIがラップされてるわけじゃないと思います。
0307デフォルトの名無しさん
2006/04/06(木) 21:06:31ずっと「::」ってなんだろ?って気持ち悪かったので(^^;
0308デフォルトの名無しさん
2006/04/06(木) 21:21:53通常の関数やメソッドとAPIの見分けがつけやすいからかなー?
0309デフォルトの名無しさん
2006/04/06(木) 21:25:250310デフォルトの名無しさん
2006/04/06(木) 21:32:21動作的な事じゃなく、コーディング規則的な事なんですかねぇ?
0311デフォルトの名無しさん
2006/04/06(木) 21:35:54だから最初に教えたとおり、::はグローバルだということを明示的に示しているわけで、
APIだからというのとはちょっと違う。
それといちいちageるな
0312デフォルトの名無しさん
2006/04/06(木) 21:41:31よく分かりました。
>それといちいちageるな
これってみなさんがやってるようにE-Mailにsageとか書けって事ですよね?
弊害でも?(板違いでごめんなさい)
0313デフォルトの名無しさん
2006/04/06(木) 21:53:26他にもIDEで::を打つと入力候補一覧が自動的に出てきたりもするから
使っているっていう人もいるようだよ。
0314デフォルトの名無しさん
2006/04/06(木) 21:57:27失礼しました
全てのピクセルを見て一番多かった色のフォルダに入れれば大体振り分けられるのではないかと考えています
色は赤や白を赤=R200~255/G0~50/B0~50、白=R230~255/G230~255/B230~255など予め定義しておいて
それに基づいて判断すれば間違いないと思います
どうぞお願いしますこの野郎早くコーティングに入れや
0315デフォルトの名無しさん
2006/04/06(木) 22:02:22レスありがとうです!
なるほどー。最近のIDEは凄いっすねー。
0316デフォルトの名無しさん
2006/04/06(木) 23:07:52visual C++のnew とかdeleteってスレッドセーフなのでしょうか?
つかVC++でスレッドセーフじゃないAPIってありますか?
0317デフォルトの名無しさん
2006/04/06(木) 23:50:48マルチスレッド版かDLL版を使えば平気であるはず。CRT関数も同じく。
C++のライブラリはここ読め。
http://msdn.microsoft.com/library/en-us/vcstdlib/html/vclrfThreadSafetyInStandardCLibrary.asp
0318デフォルトの名無しさん
2006/04/07(金) 06:30:030319デフォルトの名無しさん
2006/04/07(金) 12:34:44一行エディットでEnterを押すと複数行ではないのでビープ音が出るのですが、このビープ音を消したいと思い
自分なりに調べたらSystemParametersInfo()を使用するのかと思ったのですが
元々これでは出来ないのか、自分のコードがヘタレなのか消せませんでした。。
サブクラス化を使えばビープ音は鳴らなくなったんですが、関数だけで消せないでしょうか?
0320デフォルトの名無しさん
2006/04/07(金) 14:33:45テーブル処理がしたいのですが、デザイン画面でWindowsフォームのDataGridを配置しても列の設定ができないのは、そもそもDataGridを使うのが間違っているということでしょうか?
エクセルの様にセルを置いて、セル内にデータを入れたり、それを計算するアプリが作りたいです。
エクセルでヤレ!っていわれそうだけど・・・
0321デフォルトの名無しさん
2006/04/07(金) 15:22:020322デフォルトの名無しさん
2006/04/07(金) 16:53:59VC++の勉強を始めたのですが、Win32APIのサンプル集のサイトとかってないですか?
MSDNには、サンプルはのっていないんですよねー。
いくら調べても見つかりません。
どなたかご教授願います。
よろしくお願いします。
0323デフォルトの名無しさん
2006/04/07(金) 17:33:17MFCとSDK
ほかもいろいろ
0324デフォルトの名無しさん
2006/04/07(金) 18:21:30どこですか?
URLを教えて下さい。
お願いします。
0325デフォルトの名無しさん
2006/04/07(金) 18:36:37MSのサイトはしょっちゅう構成が変わるから自分で探すしかないな
0326デフォルトの名無しさん
2006/04/07(金) 18:40:05http://www.microsoft.com/japan/developer/library/vcsample/samplehm.htm
0327デフォルトの名無しさん
2006/04/07(金) 18:50:48ありがとうございます。
0328デフォルトの名無しさん
2006/04/08(土) 00:00:29他人の書いたちょっとしたプログラムを読んだが、読み終わってからようやく全体が理解できてきた。MFCはMSDN見ながら理解した(つもり)。
で、見たソースはフラグ処理が多いのだが、これは一般的なのか?
あとフラグの種類を列挙型で宣言せずに生の数字入れるのは一般的なのか?
0329デフォルトの名無しさん
2006/04/08(土) 01:59:41どうすれば良いですか?
エディットボックス1、2、3と三つありまして、
「+」ボタンを押すと
エディットボックス1と2の数字を足した物を3に表示したいのですが。
CString s1;
CString s2;
m_edit1.GetWindowText(s1);
m_edit2.GetWindowText(s2);
ans = num1 + num2;
m_edit3.SetWindowText(ans); //この箇所の書き方がわかりません。。
num1とnum2とansはfloatでグローバル宣言しています。
具体的にコメントの箇所が分からないのですが、
全体的におかしい所ありましたら、指摘してください。
ショボショボのプログラムですみません。。。
0330デフォルトの名無しさん
2006/04/08(土) 06:00:09数字かどうかチェック
CStringをfloatに
計算
floatをCStringに
set
DDX DDVを使う方法もある
0331デフォルトの名無しさん
2006/04/08(土) 06:04:150332デフォルトの名無しさん
2006/04/08(土) 07:41:57ビットマスク使ってフラグを処理してるってこと?
そりゃそのプログラム作った人の趣味だろ。
enum 使わないのもその人の趣味だろ。
べつに Visual C++ がどうこうという問題じゃないし、
MFC のせいでもない。
0333デフォルトの名無しさん
2006/04/08(土) 11:03:21ありがとうございます。
0334長文すみません。
2006/04/08(土) 15:08:32ビットマップをファイルから開くプログラムを作りたいと考え、
GetOpenFineName()を使って、以下のようにコーディングしました。
しかし、ファイルを繰り返し開くこうとすると、
BitPlayerAPI2.exe の 0x7d6414ae でハンドルされていない例外が発生しました :
0xC0000005: 場所 0x05ed2038 を読み込み中にアクセス違反が発生しました。 。
というエラーメッセージとともに、強制終了してしまいます。
何が悪いのでしょうか。
教えていただければ幸いです。
0335長文すみません。
2006/04/08(土) 15:09:33TCHAR sfile[MAX_PATH];
ZeroMemory(&ofn, sizeof(ofn));
ZeroMemory(sfile, sizeof(TCHAR)*MAX_PATH);
sfile[0] = '\0';
ofn.lStructSize = sizeof(ofn);// OPENFILENAME 構造体の初期化
ofn.hwndOwner = hWnd;
ofn.lpstrFile = (LPSTR)sfile;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrFilter = "ビットマップ(*.bmp)\0*.BMP\0\0\0";
ofn.nFilterIndex = 1;
ofn.lpstrTitle = TEXT("ファイルを選択してください");
ofn.lpstrInitialDir = NULL;
ofn.lpstrCustomFilter = NULL;
ofn.nMaxCustFilter = 0;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.nFileOffset = 0;
ofn.nFileExtension = 0;
ofn.lpstrDefExt = NULL;
ofn.lCustData = 0;
ofn.lpfnHook = 0;
ofn.lpTemplateName = 0;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
0336長文すみません。
2006/04/08(土) 15:10:49if (GetOpenFileName(&ofn))// GetOpenFileName() の呼び出し
{
・・・//ファイル名を取得できたときの処理
delete[] (BYTE*)sfile;
delete[] (BYTE*)&ofn;
}
else
{
・・・//できなかったときの処理
delete[] (BYTE*)sfile;
delete[] (BYTE*)&ofn;
}
0337デフォルトの名無しさん
2006/04/08(土) 16:34:250338長文すみません
2006/04/08(土) 17:14:08deleteを無しにしてもダメでした。
「GetOpenFileName バグ」でググッてみたところ、
同様の問題があったのですが、未解決でした。
というか、Win付属のメモ帳でも、「ファイル(F)-開く(O)」で、
何回も同じtxtを開くと、無言で落ちます。(俺のPCでは。)
(デバッグ中ではないので、>>334の様なメッセージは出ません)
俺のWinが逝っちゃってるんでしょうか(T_T)
0339デフォルトの名無しさん
2006/04/08(土) 17:37:120340デフォルトの名無しさん
2006/04/08(土) 18:05:44ダイアログプロシージャ内の処理で
・WM_INITDIALOG内で初期化エラーをメッセージボックスで出す
例)設定ファイルの存在確認エラーなど
・WM_PAINT内で初期化済みのリソース(メモリデバイスコンテキストなど)
を使用して描画。
モーダルなメッセージボックスで処理を止めてもディスパッチされるので
プロシージャにはWM_PAINTのメッセージは飛んでくるんですよ。
ここで、初期化エラーによりメモリデバイスコンテキストはまだ未初期化
なわけです。
0341デフォルトの名無しさん
2006/04/08(土) 18:07:19あったら教えてください
BOOL CALLBACK DialogProc(HWND hDlg,UINT Msg, WPARAM wParam,LPARAM lParam)
static HANDLE hEvStart; //イベントハンドル
if(hEvStart == NULL){
hEvStart = CreateEvent(NULL, TRUE, TRUE, NULL);//イベント生成
}
if(WaitForSingleObject(hEvStart, 0) != WAIT_OBJECT_0){
return FALSE;
}
switch(Msg){
case WM_INITDIALOG:
ResetEvent(hEvStart); //初期化開始 他の処理ガード
初期化
if(初期化失敗?){
MessageBox();
}
SetEvent(hEvStart); //初期化終了通知 他の処理ガード解除
return TRUE;
case WM_PAINT:
描画処理
return TRUE;
}
return FALSE;
}
0342長文すみません
2006/04/08(土) 18:38:09if (GetOpenFileName(&ofn))
{
bitmap->hBitmap = (HBITMAP)LoadImage((HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE),ofn.lpstrFile,IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
}
として、ファイルのパスだけ使っているので、ファイルハンドルとかはないと思うのですが、、、
ofn.lpstrFileの箇所を"something.bmp"として、GetOpenFileName()を使わなければ、問題なく画像は開けます。
ただし、当然ながらカレントディレクトリのsomething.bmpしか開けません。
逆に、
if (GetOpenFileName(&ofn))
{
}
と、if文の中身を空にしても、上記のバグが取れません。
0343デフォルトの名無しさん
2006/04/08(土) 18:38:12本当だ(゜゜;
メモ帳落ちる!知らなかった・・・
ちなみにWinXp proです
0345デフォルトの名無しさん
2006/04/08(土) 18:43:17デバイスコンテキストならNULL判定を噛ませればよいだけでは?
0346デフォルトの名無しさん
2006/04/08(土) 18:56:47お返事ありがとうございます。
確かに毎回NULL判定して、はじけば大げさにイベント作ったりしなくて
OKですが、メッセージボックスが出たタイミングでどのリソースが
未初期化かをチェックして、それを弾くというのがバグを生み出しそう
だったので・・・(見落としとかありそうで)
それならいっそ初期化が終わったタイミングで初めてプロシージャ内の
処理が流れる方が簡単&確実かなって思いました。
が、やっぱりなんか大げさな気も・・・。
そこで他の方の解決法が気になった次第です
0347343
2006/04/08(土) 19:11:38ofn.lpstrFilter = "ビットマップ(*.bmp)\0*.BMP\0\0\0";
最後の\0がひとつ多いから?
0348338
2006/04/08(土) 19:12:56親父のPCで試したところ、メモ帳は落ちませんでした。
そして俺の駄プログラムも問題なさげに動く。。。
どちらのPCも、Win XP Home Edition Version 2002 Service Pack 2ですが、
親父のPCがPentium4、1GB RAMに対し、俺のはCeleron、480MB RAMです。
ちなみに俺のWinはGetSaveFileNameでも同じ問題が生じます。
はぁ〜 もうダメだ。
わからん(--;)
0349343
2006/04/08(土) 19:24:30AMDのAthlon64X2 4600+でメモリが2Gですが。。。
OPENFILENAME ofn;
はWin2kでサイズが増えたので
Win2kでコンパイルしたのをWin98で実行させると落ちるとかあったけど・・・
sizeof()で大丈夫そうだしコンパイル環境と実行環境が同じだしなぁ・・・
なんだろー?
0350338
2006/04/08(土) 19:27:34アドバイスありがとうございます。
>最後の\0がひとつ多いから?
試してみましたが、これも関係ないみたいです。
いろいろありがとうございます。
もうちょっと、自分で調べてみようと思います。
0351343
2006/04/08(土) 19:31:23をゼロにしてデフォルトにしてみるとか
これ以上はおいらのアプリと差があんまりみつからないなぁ
でわがんばってー!
0352343
2006/04/08(土) 20:19:35騙されたと思って
OFN.lStructSize = 88;
ってしてみるとどうなります?現象は一緒?
0353デフォルトの名無しさん
2006/04/08(土) 20:56:26あるものは '\0'
あるものは 0
あるものは NULL
を突っ込んでて非常に見苦しい。
0354338
2006/04/09(日) 00:37:35ありがとうございます。
ofn.nFilterIndex = 1;
ofn.lStructSize = 88;
ともに変化はありませんでした。
このGetOpenFileNameの部分は、MSのサポート技術情報を参考にしました。
確かに、ZeroMemoryすれば、'\0'、0、NULLは必要ないですね。
勉強になりました。
0355デフォルトの名無しさん
2006/04/09(日) 21:35:20{
return hoge;
}
CHoge hoge = F();
これコンパイル通るんですよね・・・。
CHoge& hoge = F() にするところを & が抜けて、デストラクタが余計に呼び出されて・・・orz
こういうのを防ぐために、コピーコンストラクタおよび代入演算子を private にする、ってのは
設計的にありですか?
0356デフォルトの名無しさん
2006/04/09(日) 23:34:19普通にやります。
デフォルトコンストラクタを呼び出したくない場合も同様です。
0358デフォルトの名無しさん
2006/04/10(月) 10:40:45コンパイルして出来たexeを直接実行しても結果が出ないでターミナルが閉じちゃうのはなぜ?
0359デフォルトの名無しさん
2006/04/10(月) 11:09:11結果を折角表示しているのに、その結果をゆっくり見ることができるようにプログラミングしていないからだ。
解決策の例を挙げよう。
・プログラムが終了しないようにする。
・結果を見られるように適宜実行を中断する。
・CUI環境から起動する。
・デバッグ環境からデバッグ実行で起動する。
0360デフォルトの名無しさん
2006/04/10(月) 11:10:34先輩最高です。
これからもよろしくおねがいします。
0361デフォルトの名無しさん
2006/04/10(月) 11:47:16全部falseの意味になりますか?
0362デフォルトの名無しさん
2006/04/10(月) 13:51:33C言語勉強しなおせばいいんじゃね?
0363デフォルトの名無しさん
2006/04/10(月) 13:57:11スレタイ読めるかな?
0364デフォルトの名無しさん
2006/04/10(月) 14:05:070365デフォルトの名無しさん
2006/04/10(月) 17:21:09Visual C++に限ってはたしかにそうなるはずだけど、他でどうなるかは知らない。
普通にstd::fillを使え。
0366デフォルトの名無しさん
2006/04/11(火) 06:15:22入門書のサンプルコードを打ち込んでみたら、
error C2664: 'lstrcpyW' : 1 番目の引数を 'char [80]' から 'LPWSTR' に変換できません。
とエラーが出ます・・・。
サンプルコードはこれです。何がいけないのでしょう??
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow){
SYSTEMTIME tm;
char s[80];
int iRet;
GetLocalTime(&tm);
if((tm.wHour >= 0) && (tm.wHour < 12)){
lstrcpy(s, "おはようございます");
}else if(tm.wHour < 17){
lstrcpy(s, "こんにちは");
}else{
lstrcpy(s, "こんばんは");
}
iRet = MessageBox(NULL, s, "MsgBox", MB_OK);
return 0;
}
0367デフォルトの名無しさん
2006/04/11(火) 06:49:01MS VC++2005はデフォルトの文字コードがUNICODEになったからそうなる。
プロジェクトのプロパティを探せば文字コードの設定があるはずだからMBCSに変更する。
0368デフォルトの名無しさん
2006/04/11(火) 07:06:48そうだったんですか。できました、ありがとうございました。
0369デフォルトの名無しさん
2006/04/11(火) 07:14:41ちゃんと_T("")とか、TCHAR[80]を渡せ。
0370デフォルトの名無しさん
2006/04/11(火) 07:30:23どうもです。
まだ入門書の2章までしか進んでなくて、TCHARとかは次の章だったので
知りませんでした。
これだとUNICODEに自動変換してくれるのですね。
0371デフォルトの名無しさん
2006/04/11(火) 08:18:37MAX_PATH(=260)より32767 + 1(NULL用) + "\\.\"で32772が正解?
TCHAR szPath[32772];
みたいな?
0372デフォルトの名無しさん
2006/04/11(火) 08:21:390373デフォルトの名無しさん
2006/04/11(火) 08:27:390374麻布卒www
2006/04/11(火) 18:17:52今C言語の勉強をしています。
コンパイラはボーランドの無償版、エディタは学習用のソフトをDLしました。
それで今日、BCC Developerなるものが存在する事を知り、こちらをDLしました。
これからはこれを無償版でコンパイルして勉強していこうかと思います。
そこで、製品版に
BCC C++ Builder 6 professionalというものがアカデミックで3万円ですが、これから僕が選ぶ環境とどう違うんですか?
また、Visual studioというのはなんですか?
これを買ってはいけないのですか?
僕はVisual C++と僕が勉強中のC++の違いはなんですか?
教えてください。
0375デフォルトの名無しさん
2006/04/11(火) 18:26:46Visual C++ 2005 Express Editionね
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/
Visual C++ 2005 Express Edition は、コンパイラ、コード エディタ、デバッガ、
プロジェクトシステムなどを備えた、強力な C++ プログラミング ツールです。
学校の課題からゲームまで、あらゆる種類のプログラムを作成できるツールやライブラリが揃っています。
・・・だそうだ。
0376デフォルトの名無しさん
2006/04/11(火) 18:28:06ここまでいえばあなたなら分かるでしょう。
0377麻布卒www
2006/04/11(火) 18:49:38Visualがつくとどう変わるんですか?
単なるコンパイラの製品名の差ですか?という事は全く文法も同じ?
うわーん分からない〜Visualってなんだお〜
まじえろい人おしえて
0378デフォルトの名無しさん
2006/04/11(火) 19:13:13勉強で利用なら、書き込んだログの秒1桁目が
偶数ならMicrosoft社→Visual C++ 2005
奇数ならBorland社→Borland C++ Builder 6 Professional
でもいいんじゃね?
0379デフォルトの名無しさん
2006/04/11(火) 19:16:26それに基づいて色々な法人や団体がそれぞれC++コンパイラを作っていて、
自分の製品として売り物にしていたり無料で公開していたりする。
Microsoftが作ったC++コンパイラの製品名がVisual C++。
Borlandという会社が作ったのがC++ Builder。
(Visual StudioはVisual C++以外の言語のコンパイラも含まれている製品)
どちらもコンパイラだけではなく、
プログラム作りがより便利になるような「統合開発環境」を含めての製品になっている。
ちなみにボーランドの無償版ことBoland C++ Compiler (BCC)はC++ Builderのうち、
C++コンパイラなどを抜き出したもの。少々バージョンが古い。
BCC Developerは(おそらく)BCCの利用者向けに作られた統合開発環境。
Bolandとは無関係な個人が作ったフリーソフト。
0380麻布卒www
2006/04/11(火) 19:27:45まだ初歩しかしてないので、このフリーの統合環境をいじってみます。
将来的にはばっちりソフト開発が出来ないと困るのですが、BCC BuilderとVisual Studioどっちがオヌヌメですか?
高いものなので買ってみてゴミじゃねーか!!!ってなると学生の身分としてはきつくて;;
って、Borlandのとマイクロソフトのコンパイラ、全く同じ作用をするならわける必要ないですよね?
ってことはちょっと仕様が違ったりするんですか?
Visual Studioの方は
Visual Basic
C#
C++
J#
対応と書いてありますが、つまりこれは
マイクロソフトはVisualのコンパイラ単体でも無償版を出していないという事ですね?
0381デフォルトの名無しさん
2006/04/11(火) 19:32:460382デフォルトの名無しさん
2006/04/11(火) 19:33:49なんでやねん。
Visual C++ 2005 Express Edition
Visual Basic 2005 Express Edition
Visual C# 2005 Express Edition
全部無償じゃん。
どこをどう読んだら、無償版を出していないっていう結論になるんだYO
0383麻布卒www
2006/04/11(火) 19:35:49という事でVisual C++ 2005 ExpressをDLしてみました。
インストール容量大きすぎてむりぽ。
0384麻布卒www
2006/04/11(火) 19:37:413万というと、一ヶ月の食費並・・・とても出せない・・・。
大学、無料で配れ・・・Borlandと手を結んでくれ・・・。
0385デフォルトの名無しさん
2006/04/11(火) 19:43:410386デフォルトの名無しさん
2006/04/11(火) 19:49:280387麻布卒www
2006/04/11(火) 19:52:37よく、フリーズします。基本的にHDD足りてない・・・3Dゲームできない。
シルクロードオンラインか、FF11がやりたいです。
PCください。
今やっと
for whileあたりを少し使えるようになったくらいですが、雑魚ですか?
0388デフォルトの名無しさん
2006/04/11(火) 19:54:24Visual Studio 2005のアカデミック(Standard相当)は4800円
0389麻布卒www
2006/04/11(火) 19:56:25みんなは何使ってるの?
0390デフォルトの名無しさん
2006/04/11(火) 19:58:230391麻布卒www
2006/04/11(火) 20:01:510392デフォルトの名無しさん
NGNGお前がそんなこと聞いて何かの役に立つの?
0393麻布卒www
2006/04/11(火) 20:07:39ただ純粋に聞いてるだけなんですけど。
0394デフォルトの名無しさん
2006/04/11(火) 20:20:04でもそれは Visual Studio.NET 2003 theSpoke Premium
使っててタダでもらったやつなんだけどね。
IntelliSense (エディタ上での自動補完)の機能
だけでも Visual C++ 2005 使ったらいいと思うけどなぁ。
0395麻布卒www
2006/04/11(火) 20:24:27例えば
printfをprinftとか書いた場合、直してもらえますか?
これがdebug?
0396デフォルトの名無しさん
2006/04/11(火) 20:25:42おれもSpokeのやつだな。
0397デフォルトの名無しさん
2006/04/11(火) 20:25:50定数を拾ってくれるだけでも、ありがたいんですよね。
0398デフォルトの名無しさん
2006/04/11(火) 21:07:32そこまで聞くの?
0399麻布卒www
2006/04/11(火) 21:08:010400デフォルトの名無しさん
2006/04/11(火) 21:38:06たとえば、 prin まで入力したら
あとは printf みたいなものも候補として表示してくれる。
引数の型とかについてのヒントもくれる。
0401デフォルトの名無しさん
2006/04/11(火) 21:54:100402デフォルトの名無しさん
2006/04/12(水) 01:34:300403デフォルトの名無しさん
2006/04/12(水) 15:22:26MFCでネイティブなアプリケーションを作るために、VC++を始めました。
作成されたEXEを別のパソコンに移して実行すると、
「ダイナミックリンクライブラリMFC71.DLLが指定されたパスに見つかりませんでした」
と出ます。
EXEだけで実行できるようにしたいのですが、どうしたらいいのでしょうか?
調べても、いい方法が
見つかりません。
ご存知の方、ご教授願います。
0404デフォルトの名無しさん
2006/04/12(水) 15:28:28スタティックリンクにするとかに設定する。
使ってるVC++のバージョン書かかないと正確な方法は答えられない。
MFCならウィザードの時、DLLかスタティックか選択できなかったっけ?
0405デフォルトの名無しさん
2006/04/12(水) 15:54:53未解決の外部シンボルが云々と言われてしまいました。
定義の内部に実装を書かかずに解決する方法はないんでしょうか。
***.h
template <class T> class Kurasu
{
T data;
Kurasu();
};
***.cpp
#include "***.h"
template <class T> class Kurasu<T>::Kurasu()
{
...
}
というふうに。
0406デフォルトの名無しさん
2006/04/12(水) 15:57:120407デフォルトの名無しさん
2006/04/12(水) 16:00:49Visual Studio .NET 2003 なんだろうなぁ。
MFC71.DLL ってことだから。
とりあえずスタティックなライブラリをリンクしておけばおk
0408デフォルトの名無しさん
2006/04/12(水) 18:04:20>>407
「構成プロパティ→全般→MFCの使用」で、スタティックライブラリを選択したら、
EXEを実行できました。
ありがとうございました。
0409デフォルトの名無しさん
2006/04/12(水) 18:06:38行の左端に小アイコンを表示させるリストコントロールを作りたいのですが、
アイコンが表示されません。(アイコンのスペースは確保されているが)
OnInitDialog()内に以下のように記述しているのですが、何が問題なのでしょうか?
↓
//m_lstInfo:レポートタイプのリストコントロール
m_lstInfo.SetExtendedStyle(m_lstInfo.GetExtendedStyle()|
LVS_EX_SUBITEMIMAGES|LVS_EX_FULLROWSELECT);
CImageList m_ImageList;
m_ImageList.Create( 16, 16, ILC_MASK, 0, 0 );
CBitmap bmp1, bmp2;
//IDI_ICON_FILE,IDI_ICON_FOLDER:アイコンリソース
int idxIcon1 = m_ImageList.Add( AfxGetApp()->LoadIcon( IDI_ICON_FILE ) );
int idxIcon2 = m_ImageList.Add( AfxGetApp()->LoadIcon( IDI_ICON_FOLDER ) );
m_lstInfo.SetImageList( &m_ImageList, LVSIL_SMALL );
m_lstInfo.InsertColumn( 0, _T("サンプル"), LVCFMT_LEFT, 300 );
// CListCtrlにアイテム追加
m_lstInfo.InsertItem( 0, _T("アイテム�@"), idxIcon1 );
m_lstInfo.InsertItem( 1, _T("アイテム�A"), idxIcon2 );
↑
開発環境:VC++6.0
0410デフォルトの名無しさん
2006/04/12(水) 18:42:12ロードするアイコンのリソース名が入った、NULL で終わる文字列へのポインタを指定します。
上位ワードに 0 を、下位ワードにアイコンリソースの ID を入れた値を指定することもできます。
この値は、MAKEINTRESOURCE マクロを使用して作成できます。
0411409
2006/04/12(水) 20:31:37CImageList m_ImageList;
をローカルで宣言してたせいでした。
0412デフォルトの名無しさん
2006/04/12(水) 20:32:00ネットにある例を参考にCStringをcharに変換しようと思い
CString str = "abc";
char *p = new char[str.GetLength()+1];
strcpy( p, str );
delete [] p;
をコンパイルすると
「'strcpy' : 2 番目の引数を 'CString' から 'const char *' に変換できません。」
と出ます。
どうすればいいのでしょうか?
0413デフォルトの名無しさん
2006/04/12(水) 21:00:33strcpy(p, CT2A(str));
0414デフォルトの名無しさん
2006/04/12(水) 21:25:27コンストラクタがデフォルトのprivateになってるから・・・とか?
0415デフォルトの名無しさん
2006/04/12(水) 21:30:48無理。
0416デフォルトの名無しさん
2006/04/12(水) 21:37:20EXPORTSされてる関数名と序数はdumpbinを使用して得ることができましたが、
それぞれの関数の戻り値・引数リスト(型や大きさ)を得る方法がわかりません。
どうすればできるか/そもそもそんなこたーできねーだァか教えてください。
0417デフォルトの名無しさん
2006/04/12(水) 21:48:150418デフォルトの名無しさん
2006/04/12(水) 22:51:48CTえstViewクラスのOnDraw関数の中に以下のプログラムを追加したのですが、
うまく動きません。
void Ctest2View::OnDraw(CDC* /*pDC*/)
{
Ctest2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: この場所にネイティブ データ用の描画コードを追加します。
pDC->TexeOut(0,0,"ようこそvisualc++の世界へ");
}
なぜですか?ちなみに手持ちの参考書と微妙に違う箇所が気になります。
上記の
void Ctest2View::OnDraw(CDC* /*pDC*/)
ですが、参考書では
void Ctest2View::OnDraw(CDC* pDC)
となっています。
エラーは
error C2065: 'pDC' : 定義されていない識別子です。
error C2227: '->TexeOut' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
型は ''unknown-type'' です。
とでました。
まったくもって意味がわかりません。
お願いします。
0419デフォルトの名無しさん
2006/04/12(水) 22:53:090420デフォルトの名無しさん
2006/04/12(水) 22:54:23/*と*/で囲まれた部分はコメントとして扱われ、コンパイラに無視される。
0421デフォルトの名無しさん
2006/04/12(水) 22:55:33ヽ.._\./ .ンく r-兮、 __
∠`ヽ.! / ヾニEヲぐ ,ゝ-> さすがくだすれだ、
/_`シ'K-───‐-、l∠ イ あきれてものも言えねえぜ
l´__,/l\、_ ̄0¨0)゙@Yヘ, -┤
. l'___|⌒ヾ''ー==、ーr='イ i二|
/ .」 i /./7r‐く lー!
. f. ヽ‐i人.∠'< _i. l,.-ゝ.
トiヘヘ「ト〈 `X トレi7__|
〉ト:トハj`! i. / トー┤lルj,リ
/‐+----+‐l iー--i---ヾ'〃
. l_i____i__| |___i,__i_|
0422デフォルトの名無しさん
2006/04/12(水) 22:55:57error C2039: 'TexeOut' : 'CDC' のメンバではありません。
'CDC' の宣言を確認してください。
となりました。
どこを修正すれば良いですか?
0423デフォルトの名無しさん
2006/04/12(水) 22:58:38つづりが違う。
0424デフォルトの名無しさん
2006/04/12(水) 23:01:23どこを修正すればいいですか?
0425デフォルトの名無しさん
2006/04/12(水) 23:05:38おまえら釣られすぎ
0426デフォルトの名無しさん
2006/04/12(水) 23:21:44すみませんが、教えて下さい。
0427デフォルトの名無しさん
2006/04/12(水) 23:23:36コメント外すのメンドクセ
0428デフォルトの名無しさん
2006/04/12(水) 23:38:35pDC->TexeOut(0,0,"ようこそvisualc++の世界へ");
この行を消せば直るよ!
ハ_ハ
('(゚∀゚∩ なおるよ!
ヽ 〈
ヽヽ_)
0429デフォルトの名無しさん
2006/04/13(木) 00:14:090430デフォルトの名無しさん
2006/04/13(木) 00:55:08すみません。。。
コンパイルすると次のエラーがでました。
error C2664: 'BOOL CDC::TextOutW(int,int,const CString &)' : 3 番目の引数を 'const char [26]' から 'const CString &' に変換できません。(新しい機能 ; ヘルプを参照)
理由: 'const char [26]' から 'const CString' へは変換できません。
class 'ATL::CStringT<BaseType,StringTraits>' のコンストラクタが 'explicit' と宣言されています。
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL<wchar_t>
]
0431デフォルトの名無しさん
2006/04/13(木) 00:57:200432デフォルトの名無しさん
2006/04/13(木) 01:02:59pDC->TexeOut(0,0,CString(_T("ようこそvisualc++の世界へ")));
これで直ると思われ。
C++の基礎からやった方がいいんじゃないか?
0433デフォルトの名無しさん
2006/04/13(木) 01:06:15Visual C++.NET とVisual C++2005の主な違いはなんなんでしょうか?
また、Visual C++2005を購入する場合、専門書はVisual C++.NET
を買うべきでしょうか?それともVisual C++の本を買うべきでしょうか?
どちらなんでしょう??
0434デフォルトの名無しさん
2006/04/13(木) 01:07:50無事にでました。
ありがとうございました。
C++の基礎から勉強する事にします。
0435デフォルトの名無しさん
2006/04/13(木) 01:44:03WindowsプログラミングはWin32 APIベース(API/MFC/VCL/...)か、.NET Frameworkベースかが
今選べるポピュラーな選択肢だ。
3〜4年前からMicrosoftは.NETベースへの移行を宣伝しているけれど、
現状ではまだまだ主流になったとはいえない状況。
Visual C++ 2005では、Win32(MFC)/.NET Frameworkどちらの開発もできる。
Win32 APIベースでは、いわゆるネイティブコードを生成できる。
これはつまり、実行効率(処理スピード)が期待できる。
それに対し.NETは…自分で調べた方がいいだろう(笑)
どちらをやるべきか決めた上で、専門書を買った方がよいとは思う。
0436デフォルトの名無しさん
2006/04/13(木) 04:02:070437デフォルトの名無しさん
2006/04/13(木) 04:05:120438デフォルトの名無しさん
2006/04/13(木) 04:59:500439デフォルトの名無しさん
2006/04/13(木) 05:09:530440デフォルトの名無しさん
2006/04/13(木) 05:15:34サンクス、("%*",byte変数)なら表示出来るかな?
0441デフォルトの名無しさん
2006/04/13(木) 05:28:16下記のような、継承関係の無い2つのクラスがあった場合、
B::method()からA::aにアクセスすることは可能でしょうか?
class A{
public :
int a;
}
class B{
public:
method(){
A::a = 100;
}
0442デフォルトの名無しさん
2006/04/13(木) 05:42:370443デフォルトの名無しさん
2006/04/13(木) 06:25:570444デフォルトの名無しさん
2006/04/13(木) 06:58:54[^0, ]! f ./^)!
[ 、ヽ l.」 | _。.。._ __。。.
[ .ヽ .\ ]! | Y (゜ .l!
「 ]! /'.ヽ.\ .l゛ ゚ー|
.\,, ./ ゚。。.。._)、゚l_.ヽ |[
\、 」 ヽ.\゚t.ヽ_ |!
.l! .l! ゚l、\。.゜、[〈x_
| | ヽ_ ^ ゛ .\
.ヽ 」 .l! ゝ
| 」 」 ,,,,,,,,,,.\
[ [ 〔 ____ (鬱! .\
[ [ ] _^鬱_ ─ )、こんにちは
] ] ] ^゜ | 。 .l! シーモンキーだよ。
」 [ | k。.J ./ [
| 〈 t |──''" / ./゜ どうせ明後日には忘れられると思うけど
| | ヽ_ .\__ _g゛ ./゜ それまでよろしくね。
| .ヽ ゝ_ ^^゜" ./(
_1 ^^''''''ー.。,, ^ー1.-f゚゜ \_
.\-.。F-、、 ゛-、。 __/ ^\
゛ヽ。. ^'1'^^^ |
.\。._______ ・ ・ ||
\ 」 |
0446デフォルトの名無しさん
2006/04/13(木) 09:21:130447デフォルトの名無しさん
2006/04/13(木) 09:42:45よろぴく
0448デフォルトの名無しさん
2006/04/13(木) 14:55:570449デフォルトの名無しさん
2006/04/13(木) 14:57:590450デフォルトの名無しさん
2006/04/13(木) 23:30:480451デフォルトの名無しさん
2006/04/13(木) 23:34:50途中送信すみません。
ウィンドウクラスで自作アイコンを利用する為の***部分が分かりません。
LoadIcon( NULL, ***(アイコンのID) );
0452デフォルトの名無しさん
2006/04/13(木) 23:53:11リソーススクリプトで自分が指定したID
0453デフォルトの名無しさん
2006/04/14(金) 00:09:49問題の部分
wc.hIcon = LoadIcon( NULL, IDI_ICON );
リソース部分
#define IDI_ICON 101
これだと何故かエラーが出ました。
エラー内容
二番目の変数をint型からLPCSTR型に変更出来ません。
(C/C++6.0、WIN32Api)
0454デフォルトの名無しさん
2006/04/14(金) 00:17:010455デフォルトの名無しさん
2006/04/14(金) 00:41:14解決しました。 ありがとうございました。
0456デフォルトの名無しさん
2006/04/14(金) 03:28:09今まで親だったFORMを新たに作ったFORMの子にするにはどうしたらよいえしょうか?
やりたいことは、今まで作ってたダイアログベースのアプリケーションを
タスクトレイだけに表示するようにしたいです。
調べるとダミーの親FORMの子として、MainのFORMを作成して
ダミーを見えなく?することで、完全にタスクトレイのみのアプリケーションとして見えるようです。
今まで作成していたFORMを別のFORMの子にできたらと思っています。
0457デフォルトの名無しさん
2006/04/14(金) 11:57:51タスクトレイ以外で見えなくしたいだけなら子にする必要ないよ。
0458デフォルトの名無しさん
2006/04/14(金) 17:10:32リストボックスに表示させるプログラムを作っています。
ファイル名を取得する所までは出来たのですが、
その情報をリストボックスに送る事が出来ずに困っています。
ダイアログボックスのみを表示するプログラムなのですが、
SendMessage(GetDlgItem(hWnd, IDC_LIST1), LB_INSERTSTRING, (WPARAM)(リスト番号), (LPARAM)(文字列))
の関数では駄目なのでしょうか?
どなたか、ご回答をお願い致します。
0459デフォルトの名無しさん
2006/04/14(金) 17:17:410460458
2006/04/14(金) 17:38:18>>459
検索しても該当するサンプルが見つからなかったのです。
C#ならあったのですが。
0461デフォルトの名無しさん
2006/04/14(金) 17:42:12ここは具体的にはどうかいてるの?
0462458
2006/04/14(金) 17:47:52*str[]にファイル名を配列格納しています。なので
(LPARAM)(str[番号])
と指定しています。
0463デフォルトの名無しさん
2006/04/14(金) 18:57:07いきなり複雑なことやるから自力で原因がつかめなくなる
馬鹿なくせに背伸びするな
0464458
2006/04/14(金) 19:10:16ダイアログボックスが生成される時にデフォルトで表示させる事は出来ています。
それがドロップ対応になると、関数が通ってくれなくなるのです。
自分でもまだまだ調べている途中ですが、それでも解決出来なかったので、
こちらに書き込みさせて頂いたのです。
0465デフォルトの名無しさん
2006/04/14(金) 19:14:560466デフォルトの名無しさん
2006/04/14(金) 19:18:091つずつ読んで1ずつ追加するだけだろ
最初の1個できればあとは同じ
0467デフォルトの名無しさん
2006/04/14(金) 19:27:300468デフォルトの名無しさん
2006/04/14(金) 19:28:060469デフォルトの名無しさん
2006/04/14(金) 19:28:400470デフォルトの名無しさん
2006/04/14(金) 19:29:180471デフォルトの名無しさん
2006/04/14(金) 19:31:110472デフォルトの名無しさん
2006/04/14(金) 19:32:570473デフォルトの名無しさん
2006/04/14(金) 20:41:120474デフォルトの名無しさん
2006/04/14(金) 20:54:020475デフォルトの名無しさん
2006/04/14(金) 20:59:540476デフォルトの名無しさん
2006/04/14(金) 23:38:14MFCアプリケーションではなくWin32アプリケーションです。
0477デフォルトの名無しさん
2006/04/14(金) 23:41:54http://www.google.co.jp/ とか
0478デフォルトの名無しさん
2006/04/14(金) 23:44:44わかりました、頑張ります。
0479デフォルトの名無しさん
2006/04/14(金) 23:48:550480デフォルトの名無しさん
2006/04/14(金) 23:51:49まあ、ある意味間違っては無いですし…
上の流れもありますからね。
0481デフォルトの名無しさん
2006/04/15(土) 03:13:36text = "hoge\n";
text += "hoge"
CFile fp;
fp.Open( "tmp.txt", CFile::modeCreate | CFile::modeWrite );
fp.Write( text, text.GetLength() );
fp.Close();
をすると、「h o g e」 などと書かれてしまいます。
CFile fp;
char* p;
long len;
fp.Open( "tmp.txt", CFile::modeCreate | CFile::modeWrite );
len = text.GetLength();
p = text.GetBuffer( len );
fp.Write( p, len );
fp.Close();
text.ReleaseBuffer()
等としても同様に「h o g e」になってしまうのですが、どうすれば良いのでしょうか?
しかも最後まで書かれません。これはGetLength()で帰ってくる値が文字数であってバイト数では無いから、なのでしょうけども・・・。
どうすれば・・・。
0482デフォルトの名無しさん
2006/04/15(土) 04:01:59プロジェクトがUNICODE用になってるね。
VS2005の話ならプロジェクトのプロパティでUNICODEを使うからマルチバイト文字セットを使うに変更。
0483デフォルトの名無しさん
2006/04/15(土) 09:48:06>これはGetLength()で帰ってくる値が文字数であってバイト数では無いから
UNICODEプロジェクトなら文字数が帰ってくる。
だから
>fp.Write( text, text.GetLength() );
は
>fp.Write( text, text.GetLength() * sizeof(_TCHAR));
としないとだめ。
0484481
2006/04/15(土) 12:57:46文字列処理も結構するので、UNICODEで暫く頑張ろうと思ってまふ
0485481
2006/04/15(土) 13:04:08h o g e は変わらず・・・。うーん・・・
0486デフォルトの名無しさん
2006/04/15(土) 14:08:24text = _T("hoge\n");
text += _T("hoge");
ではどう?
0487デフォルトの名無しさん
2006/04/15(土) 14:37:300488481
2006/04/15(土) 18:20:00ダメですねえ。相変わらず h o g e になります。
>>487
BOMを最初に書く、どうやるのだろう・・・
CStringに入れた文字列をただただファイルに書きたいだけなのに・・・
こうなればFILE*か、と思ったらfopen等は古い形式と言われ
p = (char*)text.GetBuffer( text.GetLength() * sizeof( TCHAR ) );
FILE*fpw;
fopen_s( &fpw, "test2.txt", "w" );
fwrite( p, sizeof( TCHAR ), text.GetLength(), fpw );
fclose( fpw );
text.ReleaseBuffer();
をやったら、、、「h o g e」
やっぱ同じじゃーん・・・。
もうダメポ・・・。
0489デフォルトの名無しさん
2006/04/15(土) 18:44:530490デフォルトの名無しさん
2006/04/15(土) 18:55:13超初心者未満はお引取りください
0491デフォルトの名無しさん
2006/04/15(土) 19:13:21ある意味charでもwchar_tでも無い型なわけだから、双方ともに変換がいるわけ
//面倒だから#include <atlconv.h>しとけ。
USES_CONVERSION;
char *p = T2A( LPCTSTR(text) );
FILE*fpw;
fopen_s( &fpw, "test2.txt", "w" );
fwrite( p, 1, strlen(p), fpw );
fclose( fpw );
でいけるとおもう。
まあ、CStringじゃなくて、CStringAを明示的に使う手もか。
0492デフォルトの名無しさん
2006/04/15(土) 19:18:10具体的には、現在、下記のような構造体で
m_structCONVERTSET[n]
として使っているのを
m_structCONVERTSET[n][m]
として使いたいのです。(n,mは変動)
typedef struct convertset{
BOOL bCodeConvert;
CStringArray gCodeTableArray;
} CONVERTSET;
CONVERTSET*m_structCONVERTSET;
int nMaxSize = 10;//最大値は変動。
m_structCONVERTSET = (struct convertset *)malloc( sizeof(struct convertset) * nMaxSize );//領域確保
0493デフォルトの名無しさん
2006/04/15(土) 19:19:420494デフォルトの名無しさん
2006/04/15(土) 19:36:00CString BOM(_T("\ufeff"));
CString text(_T("hoge"));
CString out = BOM + text + _T("\r\n");
CFile cf(_T("test2.txt"), CFile::modeCreate | CFile::modeWrite);
cf.Write(out, out.GetLength()*2);
cf.Close();
可変長の文字列を扱うなら素直にiostreamかstdioを使ったほうがいいと思うがな。
0495デフォルトの名無しさん
2006/04/15(土) 19:59:28すいません、それをどう使えばいいのでしょうか。
0496デフォルトの名無しさん
2006/04/15(土) 20:16:17どうしても左隅にウィンドウが残ってしまいます。
どうしたよいでしょうか?
0497デフォルトの名無しさん
2006/04/15(土) 20:17:380499デフォルトの名無しさん
2006/04/16(日) 08:39:13そう短気にならずに粘って下さい。
ここの板は技術なのに、すぐ人格に言及しようとする性向の人が出て来ます。
2ちゃんねるは、そういう人も混じるところ。駅のホームかどこかで
ヒマにあかせて打っていたりする。欲求不満の捌け口にしている人もいる。
昔の言い方をすれば、お天道さまが見ている。そのうち天罰が当たるでしょう。
0500デフォルトの名無しさん
2006/04/16(日) 17:34:200501デフォルトの名無しさん
2006/04/16(日) 17:49:31Static Link Libraryのことだよ。
0502デフォルトの名無しさん
2006/04/16(日) 21:35:46501の言う静的ライブラリの場合とDLLを参照するためのインポートライブラリである場合の2種類がある。
静的ライブラリは単にオブジェクトファイルを固めたようなもの。
インポートライブラリは、関数などの実体がDLLにあるという情報が書かれている。
0503500
2006/04/16(日) 21:55:30dllとdefファイルしか入ってないんです。
普通、libファイルないと組み込めないですよね?・・・
でも、皆さんそれだけて作ってるようなので
libファイルって結局なんなのかなぁとか思って質問したのですが。
dllからlibファイルを生成するようなツールってあるんですか?
0504デフォルトの名無しさん
2006/04/16(日) 22:20:510505デフォルトの名無しさん
2006/04/16(日) 23:11:09LKN1106エラーで結局作れてません・・・
ちなみに使おうとしてるのはSQLiteです。
VS2005落とさないとだめなのかなぁ・・
0506デフォルトの名無しさん
2006/04/16(日) 23:12:29その場合、defファイルにDLLインポート用のことが書かれているはず。
つまりお前がlibに期待している役割を担っているはずということだ。
0507デフォルトの名無しさん
2006/04/16(日) 23:13:08libを作らなくてもdefのまま使えなかったっけ?
0509499
2006/04/17(月) 07:46:20言葉使いだな。やっぱ、バチが当たったな。
0510デフォルトの名無しさん
2006/04/17(月) 08:43:18APIのLoadLibraryを使えばできる。これでがんばれ。
LIB /DEF でインポートライブラリを作るときは元になるOBJも必要で、
この指定がないとカラのライブラリが出来る。
レガシーなDEFを使ってDLLとインポートライブラリを作るときは次のように指定するが
cl /LD xxx.cpp /link /DEF:xxx.def
説明のためにまどろっこしい順序で実行すればこう
cl /c xxx.cpp
lib /DEF:xxx.def xxx.obj ここでインポートライブラリができる。 xxx.objを忘れずに。
link xxx.obj xxx.exp ここでDLLができる
つまりDEFだけあってもインポートライブラリは作れない。
0511デフォルトの名無しさん
2006/04/17(月) 08:47:07link xxx.obj xxx.exp
link /DLL xxx.obj xxx.exp (正)
0512デフォルトの名無しさん
2006/04/17(月) 18:42:46インポートライブラリを作るときもオブジェクトファイルが必要なんですか。。。
ぅーん。困った。
0513デフォルトの名無しさん
2006/04/17(月) 18:50:150514デフォルトの名無しさん
2006/04/17(月) 18:54:36インポートライブラリの目的は、defで定義された関数がobjのどこから見つかるかを知り
スムーズにDLLを呼び出すことにある。
0515デフォルトの名無しさん
2006/04/17(月) 21:00:19情報量はこの順に多いわけだし
俺ならDLL作ったやつに直接聞くけどな
0516デフォルトの名無しさん
2006/04/17(月) 21:22:37だれや、DLLを作ったやつって?
0517デフォルトの名無しさん
2006/04/17(月) 21:35:23ieをオプションつきで起動(メニューバーとかない状態)、
ブラウザ内のHTMLドキュメント読み込みがcmpleteまで待機、
ieのウィンドウハンドルを取得
までをやりたいのですが
VBScriptだと簡単にできたのですが、
これをVCでやるには、、、、
VBだとちなみに
CreateObject("Wscript.〜") でieを .Run で立ち上げてパラメータ絵をセットしていました
0518512
2006/04/17(月) 22:01:340519デフォルトの名無しさん
2006/04/18(火) 00:58:35超初心者でVisual C++ 2005 Express Editionを使って勉強し始めました。
とりあえずウィンドウを表示しようとしていますが、
fatal error C1083: include ファイルを開けません。
'windows.h': No such file or directory
といったエラーが出てコンパイルできないのです。
どうしたらいいものでしょうか、2日ほどPCと睨めっこでそろそろ挫けそうです。
0520デフォルトの名無しさん
2006/04/18(火) 01:01:11では、.Net以外の開発はできないはず
ようはC言語の勉強は無理です
どうしてもというならば、そのファイルを度j個からかほろってくると
0521デフォルトの名無しさん
2006/04/18(火) 01:09:58COM使うんなら基本的にやり方は同じ。
0522デフォルトの名無しさん
2006/04/18(火) 01:12:52たとえば
var wShell = CreateObject("Wscript.Shell")
って一文をVCに直すにはどうすれば(;´д⊂)
0523デフォルトの名無しさん
2006/04/18(火) 01:24:33C言語自体は可能だろ。
0524デフォルトの名無しさん
2006/04/18(火) 01:57:310525デフォルトの名無しさん
2006/04/18(火) 01:59:570526デフォルトの名無しさん
2006/04/18(火) 03:04:57Express Editionには Windows SDKがついてこないので、
windows.h系の開発がしたければ別途Windows SDKをダウンロードしてインストール。
どこかのスレに設定の方法がアップしてあったが流れて見当たらない。
ぐぐったら出てくると思うから探してみて。
0527デフォルトの名無しさん
2006/04/18(火) 03:08:20Platform SDK だった。
0528デフォルトの名無しさん
2006/04/18(火) 09:20:10あふぉ?
Windows の API や GUI まわりと
言語との間になんの関係が?
0529デフォルトの名無しさん
2006/04/18(火) 09:33:08ソースファイル(CPPファイル)に「IsRegistoryInstalled」という関数を作ったのですが、ビルドすると、「エラー2 error C3861:'IsRegistoryInstalled': 識別子が見つかりませんでした」と出てしまいます。
そこで、この関数をヘッダファイル(Hファイル)に移してビルドすると、
「エラー1 error C2065: 'strValue' : 定義されていない識別子です。」とでてきます。strValueはCString型です。どうも、ヘッダファイルではCString型を使えないようです。
ヘッダファイルにも、「#include "stdafx.h"」としたんですよ。ウイザードでも、MFCを使えるように選択しました。
ヘッダファイルでだけMFCが使えないなんておかしくないですか?
Win32コンソールアプリケーションでMFCを使えるようにするにはどうしたらいいのでしょうか?
ご存知の方、よろしくご教授願います。
0530デフォルトの名無しさん
2006/04/18(火) 09:37:40まずC言語の基本的事項は分かってる?
プリコンパイルヘッダについても理解してる?
それに加えてC++の基本的なことも勉強してから
MFCに取り組んだ方がいいと思う。
あと、registry の綴りが間違ってる。
0531デフォルトの名無しさん
2006/04/18(火) 11:27:18きっと、POS端末に物語をインストールするんだよ。
0532デフォルトの名無しさん
2006/04/18(火) 12:05:49ソースファイル(CPPファイル)に「IsRegistoryInstalled」という関数を作ったのですが、ビルドすると、「エラー2 error C3861:'IsRegistoryInstalled': 識別子が見つかりませんでした」と出てしまいます。
そこで、この関数をヘッダファイル(Hファイル)に移してビルドすると、
「エラー1 error C2065: 'strValue' : 定義されていない識別子です。」とでてきます。strValueはCString型です。どうも、ヘッダファイルではCString型を使えないようです。
ヘッダファイルにも、「#include "stdafx.h"」としたんですよ。ウイザードでも、MFCを使えるように選択しました。
ヘッダファイルでだけMFCが使えないなんておかしくないですか?
Win32コンソールアプリケーションでMFCを使えるようにするにはどうしたらいいのでしょうか?
ご存知の方、よろしくご教授願います。
0533デフォルトの名無しさん
2006/04/18(火) 12:08:300534デフォルトの名無しさん
2006/04/18(火) 12:08:51ソースファイル(CPPファイル)に「IsRegistoryInstalled」という関数を作ったのですが、ビルドすると、「エラー2 error C3861:'IsRegistoryInstalled': 識別子が見つかりませんでした」と出てしまいます。
そこで、この関数をヘッダファイル(Hファイル)に移してビルドすると、
「エラー1 error C2065: 'strValue' : 定義されていない識別子です。」とでてきます。strValueはCString型です。どうも、ヘッダファイルではCString型を使えないようです。
ヘッダファイルにも、「#include "stdafx.h"」としたんですよ。ウイザードでも、MFCを使えるように選択しました。
ヘッダファイルでだけMFCが使えないなんておかしくないですか?
Win32コンソールアプリケーションでMFCを使えるようにするにはどうしたらいいのでしょうか?
ご存知の方、よろしくご教授願います。
0535デフォルトの名無しさん
2006/04/18(火) 12:09:22ソースファイル(CPPファイル)に「IsRegistoryInstalled」という関数を作ったのですが、ビルドすると、「エラー2 error C3861:'IsRegistoryInstalled': 識別子が見つかりませんでした」と出てしまいます。
そこで、この関数をヘッダファイル(Hファイル)に移してビルドすると、
「エラー1 error C2065: 'strValue' : 定義されていない識別子です。」とでてきます。strValueはCString型です。どうも、ヘッダファイルではCString型を使えないようです。
ヘッダファイルにも、「#include "stdafx.h"」としたんですよ。ウイザードでも、MFCを使えるように選択しました。
ヘッダファイルでだけMFCが使えないなんておかしくないですか?
Win32コンソールアプリケーションでMFCを使えるようにするにはどうしたらいいのでしょうか?
ご存知の方、よろしくご教授願います。
0536デフォルトの名無しさん
2006/04/18(火) 12:12:24どうしたら使えなくなるか教えてほしいなあ
0537デフォルトの名無しさん
2006/04/18(火) 12:59:35入門書の1冊目が終わったので、とりあえず何か作りたいと思います。
カレンダーを作るには、どうしたらいいのでしょうか?
ヒントでもいいのでお願いします。
JavaのCalendarクラスのようなものは、C++にはないのでしょうか?
0538デフォルトの名無しさん
2006/04/18(火) 13:07:52コントロールでよければ貼るだけだし
0539デフォルトの名無しさん
2006/04/18(火) 13:11:18見つけたのですが、こういう感じで作るのが普通なのですか?
カレンダーは自分で作成しないといけないのですか?
http://www.h4.dion.ne.jp/~zero1341/c/11a/c11a.cpp
0540デフォルトの名無しさん
2006/04/18(火) 13:41:25http://www5.airnet.ne.jp/tomy/cpro/etc20.htm
error C2011: 'tm' : 'struct' 型の再定義
c:\program files\microsoft visual studio 8\vc\include\time.h(119) : 'tm' の宣言を確認してください。
error C2079: 'date' が 未定義の struct 'tm' で使用しています。
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
error C2027: 認識できない型 'tm' が使われています。
c:\program files\microsoft visual studio 8\vc\include\time.h(119) : 'tm' の宣言を確認してください。
error C2228: '.tm_mon' の左側はクラス、構造体、共用体でなければなりません
error C2027: 認識できない型 'tm' が使われています。
c:\program files\microsoft visual studio 8\vc\include\time.h(119) : 'tm' の宣言を確認してください。
error C2227: '->tm_mday' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
error C2027: 認識できない型 'tm' が使われています。
c:\program files\microsoft visual studio 8\vc\include\time.h(119) : 'tm' の宣言を確認してください。
error C2227: '->tm_mon' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
error C2027: 認識できない型 'tm' が使われています。
c:\program files\microsoft visual studio 8\vc\include\time.h(119) : 'tm' の宣言を確認してください。
などどエラーが53個出て動かないのですが、tmの宣言をどういうふうに
変えたらいいのでしょうか・・・?
0541デフォルトの名無しさん
2006/04/18(火) 13:45:520542デフォルトの名無しさん
2006/04/18(火) 16:01:06lpCmdLineの前に付いている*はどのようなときに付くのでしょうか?
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR lpCmdLine, int nShow)
{
// データファイルから起動されたときの処理
if (*lpCmdLine)
{
// フルパスのファイル名をコピーする・ただし、両側の引用符を削除する
strcpy(FileName, *lpCmdLine == '"' ? lpCmdLine+1 : lpCmdLine);
int pos = strlen(FileName) - 1;
if (pos > 0 && FileName[pos] == '"')
FileName[pos] = 0;
GetFileTitle(FileName, FileTitle, sizeof(FileTitle)-1); // 短い名前
bOpenStart = TRUE; // フラッグ
}
0543デフォルトの名無しさん
2006/04/18(火) 16:17:150544デフォルトの名無しさん
2006/04/18(火) 16:21:390545デフォルトの名無しさん
2006/04/18(火) 16:29:47超初心者未満はお引き取りください。
0546デフォルトの名無しさん
2006/04/18(火) 17:18:30C或いはC++が身についているかどうか怪しいのに、
C或いはC++でWindowsプログラミングをしようなんて、狂気の沙汰。
0547デフォルトの名無しさん
2006/04/18(火) 17:44:420548デフォルトの名無しさん
2006/04/18(火) 18:54:23LPTSTRのLPはポインタを表す。ポインタにつける*の意味は分かるよな?
0549デフォルトの名無しさん
2006/04/18(火) 18:56:39#importを使っていけばこんな感じ。
#undef GetWindowStyle
#undef GetFreeSpace
#import <wshom.ocx>
int main()
{
IWshRuntimeLibrary::IWshShellPtr wShell;
HRESULT hr = wShell.CreateInstance(L"Wscript.Application");
}
0550初心者以下
2006/04/18(火) 19:54:220551デフォルトの名無しさん
2006/04/18(火) 20:00:470552デフォルトの名無しさん
2006/04/18(火) 20:01:30http://www.amazon.co.jp/exec/obidos/ASIN/B00009PJOA/qid=1145357998/sr=1-3/ref=sr_1_10_3/249-8243777-2154721
0553初心者以下
2006/04/18(火) 20:09:223万円…かなりするもんですね…。一度インストールしてしまえばもう使わないのに。どうしよう…。
0554デフォルトの名無しさん
2006/04/18(火) 20:12:100555初心者以下
2006/04/18(火) 20:18:130556デフォルトの名無しさん
2006/04/18(火) 20:35:17↑のソースをVC7SP1でビルドしようとしているのですが、
error C2955: 'std::collate' : クラスのテンプレート名で仮引数リストの指定がありません。
というエラーが出てビルド出来ません。
「boost::reg_expression<wchar_t>」は「boost::wregex」に置換してあります。
Boostは1.33.1でregex関係しか入れてません、ググっても全くわかりませんでした。
お願いします。
0557デフォルトの名無しさん
2006/04/18(火) 21:25:18ちょっと信じられない
0558初心者以下
2006/04/18(火) 21:34:090559556
2006/04/18(火) 21:46:14それとも何か、指定しないと駄目なんでしょうか。
0560デフォルトの名無しさん
2006/04/18(火) 22:43:14一度インストールしてしまえばもう使わないとは、
つまりハードディスクの肥やしにするということですか?
0561デフォルトの名無しさん
2006/04/19(水) 00:03:48何のために買うの?
>>560の通り?
0562519
2006/04/19(水) 00:28:24レスありがとうございます。
しかし、既に「Platform SDK」は既にインストールされています、インストールの仕方を間違えてるのかもしれません。
もうちょっとがんばってみます。
0563デフォルトの名無しさん
2006/04/19(水) 17:18:380564556
2006/04/19(水) 18:32:20どっかでバグ出そうだけどしょうがない。
0565デフォルトの名無しさん
2006/04/19(水) 19:11:26今まで何も疑問もなく使ってきた
GetWindowTextとSetWindowTextだが
エディットボックスに単独で「/」って入れると文字化けするのはなぜ?
GetWindowTextって勝手に最後に\nか\0かつけてたっけ
解決法もキボン
0566デフォルトの名無しさん
2006/04/19(水) 19:20:37「/」が「*s」になる。
0567デフォルトの名無しさん
2006/04/19(水) 19:55:05俺が勘違いしてただけだった
0568デフォルトの名無しさん
2006/04/19(水) 21:17:04今、IMEを制御するプログラムをいじってるんだが、こんな風にするとパソコンが
フリーズする。なぜだろうか?
プログラムをデバッグモードで起動して→IMEを全角/半角キーで起動
→ウィンドウプロシージャの中にデバッグポイントを打って
→そこでステップ移動をすると高確率でフリーズ・・・
どうも、IMEを起動してる状態でデバッグのステップ移動をしていると
フリーズするみたいなのだが、どういうことだろうか?
また、普通にデバッグをせずにプログラムを起動した時は普通に問題なく
動いてる。つまり、デバッグのステップ移動時にしか起こらない症状。
環境は .net2003+XPのsp2
回答を頼む。
ついでに、おーage age
0569デフォルトの名無しさん
2006/04/19(水) 22:12:060570デフォルトの名無しさん
2006/04/20(木) 11:32:13起動時コンボボックスに表示する項目を変えたいのですが
void ChogeDlg::OnPaint()
{
if (IsIconic())
{
.................................
}
else
{
// ここでコンボボックスリストの初期化
}
}
ここでいいのでしょうか?
とりあえず上手く行ってはいますが、自信がありません。
0571デフォルトの名無しさん
2006/04/20(木) 11:55:04WM_CREATEでやるもんじゃね?
0572デフォルトの名無しさん
2006/04/20(木) 12:26:21嘘はいいよ
0573デフォルトの名無しさん
2006/04/20(木) 12:31:140574デフォルトの名無しさん
2006/04/20(木) 13:29:31どこでもいい。
0575デフォルトの名無しさん
2006/04/20(木) 13:47:420576571
2006/04/20(木) 17:51:460577デフォルトの名無しさん
2006/04/20(木) 21:25:05基底クラスにCArrayを使うとコンパイルが通らなくなります。
ClassA : public ClassB な場合に、ClassBのメンバにCArrayを使えません。
(コピーコンストラクタが使えないと言われ、作るとマネージにしろと怒られる)
CTypedMapPtrのCMapStrToObjでもVALUEに指定するクラスに多重継承を使うと
CMapStrToObjのメソッドが使えなくなります。
CTypedMapPtr<CMapStrToObj, CString, ClassC*>な場合に、
ClassC : public ClassD, public ClassC ではCTypedMapPtrのメンバしか
見えなくなります。
これはどちらも仕様として諦めるしかないのでしょうか?
過去に同じような問題で解決できた方がいらっしゃいましたらご教示お願いします。
0578デフォルトの名無しさん
2006/04/20(木) 21:26:57ClassC : public ClassD, public ClassC は、
ClassC : public ClassD, public ClassD の間違いです。
0579デフォルトの名無しさん
2006/04/20(木) 21:27:380580デフォルトの名無しさん
2006/04/21(金) 00:10:51これかな。俺は2kだけどよく同じ現象にやられる。IME切っとけば回避できるけど。
でも、SP1で修正されたことになってるな…
ttp://support.microsoft.com/default.aspx?scid=kb;ja;JP418661
ちなみに完全にフリーズしたわけじゃないから、
何時間か我慢してれば元に戻るよ。
0581デフォルトの名無しさん
2006/04/21(金) 01:21:42STLを使っているのにCArrayを使うと言うセンスが理解できない。
0582デフォルトの名無しさん
2006/04/21(金) 01:22:06ie関連のATLだけこうしんできないかね?
0583デフォルトの名無しさん
2006/04/21(金) 07:23:19実は上のケースでvectorのほかにも連想記憶を使いたかったのですが
同様の理由で無理だったのでCArrayにも実体を保持して誤魔化そうかと
考えていました。
今は単純な継承のCMapとCArrayで誤魔化していますが、STLではもっと
スマートな解決策があるのでしょうか?
調べては見たものの良い方法が見つからないのでぜひお教えください。
0584デフォルトの名無しさん
2006/04/21(金) 07:54:30ここがいまいち分からないけど
class D : public std::vector< B >
ってこと?
0585デフォルトの名無しさん
2006/04/21(金) 11:05:38リソースエディタでダイアログにリストボックス付けたのですが、
リストに文字列を設定するにはどうしたらいいですか?
0586デフォルトの名無しさん
2006/04/21(金) 11:19:030587デフォルトの名無しさん
2006/04/21(金) 11:31:110588デフォルトの名無しさん
2006/04/21(金) 11:35:24やってみないと実際使えるかどうかわからん。
0589デフォルトの名無しさん
2006/04/21(金) 13:41:07変数の追加でリストボックスのコントロール追加して
メッセージのWM_INITDIALOGでリストボックスの変数にAddStringする
これでよかったっけ
0590デフォルトの名無しさん
2006/04/21(金) 14:49:14ご返答ありがとうございましたm(_ _)m
いろんな参考書を見つつやっていて、まだよくわかってないのですが
アドバイスいただいたキーワードを元に、もっと調べてみます;
0591デフォルトの名無しさん
2006/04/21(金) 15:05:45「'INPUT' : 定義されていない識別子です。」
ってでてしまいコンパイルできません。
INPUT構造体はwinuer.hで定義されてるので、windows.hをincludeしとけば問題ないと思うのですが、
なにか他にやらなければいけないことがあるのでしょうか?
環境はWin2000+VC6です。
#include "stdafx.h"
#include <windows.h>
int main() {
INPUT input;
input.type = INPUT_MOUSE;
input.mi.dwFlags = first | second;
SendInput(1, &input, sizeof(INPUT));
return 0;
}
0592デフォルトの名無しさん
2006/04/21(金) 15:14:130593デフォルトの名無しさん
2006/04/21(金) 15:21:13winuser.hを見ればわかる。
0594591
2006/04/21(金) 15:46:040595デフォルトの名無しさん
2006/04/21(金) 16:07:360596568
2006/04/21(金) 17:14:02やっぱり、仕様っぽいですね・・
IMEの時は、デバッグのステップ移動をしないようにして
対処するしかないみたいだね。
ありがとう。安心した。
0597デフォルトの名無しさん
2006/04/21(金) 17:47:45stdafx.hの中も見ておいたほうがよさそうな予感。
0598デフォルトの名無しさん
2006/04/21(金) 22:59:59そうです、>>577の例で言うと
ClassA : public vector<ClassB>
としていましたが、ClassBにCTypedMapPtrやCArrayのメンバを追加して
複数のキーで検索できるようにしたいと思っていました。
今日仕事帰りに本屋によって数時間探してみたのですが、
mulitimapというのが使えるかもしれないので調べてみようと思います。
ヒントになる情報をくれた>>581さんもありがとう。
0599デフォルトの名無しさん
2006/04/21(金) 23:11:040600デフォルトの名無しさん
2006/04/22(土) 07:00:140601デフォルトの名無しさん
2006/04/22(土) 09:26:30連想配列メンバとoperator[]でも実装できるんだけど。
0602デフォルトの名無しさん
2006/04/22(土) 11:29:43取っ払いたいんだがその方法が分からない。
どうやったら消えるのか教えてほしい。
リソースエディタで編集できるまでは分かったものの
それで消せるようには見えない。
リソースファイルやアイコンファイルをプロパティの設定で
「ビルドしない」にしてもしつこくメニューが出てくる。
ちなみにソースコードは
http://hirotake.web.infoseek.co.jp/
の
InverseKinematic.lzh (231KB) (Visual C++ Ver 6.0用)
(解凍したら「ワークスペースを開く」でInverseKinematic.dswをクリックするだけでビルド準備OK)
どうか教えてくれ。
0603デフォルトの名無しさん
2006/04/22(土) 11:50:16基礎を飛び越そうとしても良い事無いぞ。
地道が一番。
0604デフォルトの名無しさん
2006/04/22(土) 13:09:40SDK MFC ATL WTL その他があることすら知らないようだ。
0605602
2006/04/22(土) 13:19:31あまり無駄なやりとりで暇を潰している暇はないんで手短に頼む。
それともこのスレタイと>>1は偽りなのか?
それなら他で聞くが。
0606デフォルトの名無しさん
2006/04/22(土) 13:24:580607デフォルトの名無しさん
2006/04/22(土) 13:29:370608602
2006/04/22(土) 13:33:39以下、ここでは質問しない方がいいよ、ここの住人みんな馬鹿だから。
じゃーな、ばーーーーーーか。( ´,_ゝ`)プッ
0609デフォルトの名無しさん
2006/04/22(土) 13:41:220610デフォルトの名無しさん
2006/04/22(土) 14:09:580611デフォルトの名無しさん
2006/04/22(土) 15:45:40くだすれにもホドがあると言う事だな
0612デフォルトの名無しさん
2006/04/22(土) 17:04:320613デフォルトの名無しさん
2006/04/22(土) 17:34:420614デフォルトの名無しさん
2006/04/22(土) 17:35:270615デフォルトの名無しさん
2006/04/22(土) 17:39:21公開した人間がVC6用だと書いているからVC6を入手したんだよ、きっと。
0616デフォルトの名無しさん
2006/04/22(土) 20:25:44ハローワールド打っても、コマンドプロンプトみたいな画面でできます。
GUIのWinアプリの場合はその他に何を弁居売れ売いんでしょう?
0617デフォルトの名無しさん
2006/04/22(土) 20:30:24お前の頭にウィンドウズプログラミングの知識を入れればよい。
ただし、お前がプログラミングを始めたばかりなら今すぐはやめとけ。
いわば、プログラミング言語の習得そのものを基礎とすれば
ウィンドウズプログラミングは応用・実践にあたることだから。
0618デフォルトの名無しさん
2006/04/22(土) 20:30:36学校の授業と関係ないだろ。
寝てろ。
0619デフォルトの名無しさん
2006/04/22(土) 21:22:25窓プログラミングは難しい
0620616
2006/04/22(土) 21:23:45vectorとかの作者さんたちはみなやっぱり凄腕なんですね!
とりあえず、C++の授業がすべて終わったら、応用に取り掛かってみようと思います。
0621デフラグさん ◆mRgSYalFkQ
2006/04/22(土) 21:23:57[゚д゚] デフラグガカンリョウシマシタ
/[_]ヽ
| |
++CGIUWin、、、。いいうががきしすすそたたっってでででででなにののののはままみもょれをんんアコトド
ドハプププマリルロロワンンーー他何合場売売始学居弁打授校業画面?
0622デフォルトの名無しさん
2006/04/22(土) 21:29:14アレは一番最初が一番きつい。精神的に。
0623デフォルトの名無しさん
2006/04/22(土) 23:41:42つか、C/C++の授業なんか待ってないで独学でガシガシ読み進めるだけの貪欲な学習欲と
根性が無ければ長続きしないと思うよ。
0624デフォルトの名無しさん
2006/04/22(土) 23:52:270625デフォルトの名無しさん
2006/04/23(日) 00:58:39C++はおろか、ポインタすら知らなくてもプログラムができてしまう。
0626デフォルトの名無しさん
2006/04/23(日) 01:21:440627デフォルトの名無しさん
2006/04/23(日) 01:45:150628デフォルトの名無しさん
2006/04/23(日) 01:45:490629デフォルトの名無しさん
2006/04/23(日) 01:58:590630デフォルトの名無しさん
2006/04/23(日) 03:06:570631デフォルトの名無しさん
2006/04/23(日) 03:53:350632デフォルトの名無しさん
2006/04/23(日) 20:42:42ファイルの中身を○バイト分シフトして同じファイルに上書き保存するにはどうすればいいですか?
シフトすることによって生まれた空間は無かった事にして上書き保存したいです。
0633デフォルトの名無しさん
2006/04/23(日) 20:46:34fseekでバイト分移動してそこから書き込み始め
0634デフォルトの名無しさん
2006/04/23(日) 20:47:390635デフォルトの名無しさん
2006/04/23(日) 21:12:500636デフォルトの名無しさん
2006/04/24(月) 02:10:51書き込み用と読み込み用に一つずつ開いて、読み込みの方は
fseek()でずらしてから読み込み、書き込みファイルに転送。
全部終わったら、読み込みファイルを消去、次に書き込んだファイル
を読み込みファイルと同じだったファイル名にリネーム。
0637デフォルトの名無しさん
2006/04/24(月) 02:12:19されているtmpnam()を使って作成する。
0638デフォルトの名無しさん
2006/04/24(月) 02:23:23動くプログラムを書かなければいけない羽目になって、初めてVC(VS2005)の
プログラムを参考書の山と格闘しながら作っています。
そのプログラムが無茶とは知りつつ通信系のプログラムで、CAsyncSocket
を使ってTCP/IPで通信するものなのですが、文字コード変換をどうやって
良いのかわからずに困っています。過去ログから、プロジェクトのデフォルト
文字コードを変更すればなんとかなりそうなことはわかったのですが、できれば
内部処理はUNICODEのまま、外部との通信をシフトJISやEUCで行いたい
のですが、簡単に使える変換ライブラリ(できれば、CStringとの相互変換)の
ようなものは、どこかにありませんでしょうか。
あまりのドキュメントの多さと、訳の分からない型の多さ、そしてただソースを
読みにくくしているとしか思えない(笑)ハンガリアン記法と独自の命名規則で
もう泣きそうです。TT
0639デフォルトの名無しさん
2006/04/24(月) 02:24:37ぐぐれ
0640デフォルトの名無しさん
2006/04/24(月) 04:46:44Cygwin(or Mingw)を使って、iconvを使えば殆どUnixのままのコードが動くのに。
0641デフォルトの名無しさん
2006/04/24(月) 18:32:39Shift JISならCString類の変換演算子やコンストラクタを使って、
const char *を取り出したりconst char*から初期化・代入したりできる。
0642デフォルトの名無しさん
2006/04/24(月) 18:47:47標準ライブラリだけで可能だ
0643デフォルトの名無しさん
2006/04/24(月) 18:51:00UnicodeとSjisの相互変換をやる標準ライブラリはなんですか?
0644デフォルトの名無しさん
2006/04/24(月) 18:53:240645デフォルトの名無しさん
2006/04/24(月) 18:55:11流石にそれは高々100程度のエントリの配列を用意するだけだろ。
0646デフォルトの名無しさん
2006/04/24(月) 18:56:280647デフォルトの名無しさん
2006/04/24(月) 18:56:430648デフォルトの名無しさん
2006/04/24(月) 19:00:54unicode, sjisならWindowsのAPIにあった気がするが、unicodeは2byte固定だったかな。
0649デフォルトの名無しさん
2006/04/24(月) 22:24:12Windows上の処理系ではロケールを"japanese"などに設定すれば、
マルチバイトをShift JIS(CP932)、ワイド文字をUTF-16として、
mbstowcs/wcstombs類を始めとしたC/C++のマルチバイト・ワイド文字変換のライブラリが使える。
また、ロケールを""にするとシステム標準を使うと言うことで、
日本語版Windowsでなら"japanese"相当だが、
他国語版Windowsならその地域に適切なものが選ばれるようにもなる。
0650デフォルトの名無しさん
2006/04/24(月) 23:33:28デストラクタをcppファイル側に定義するとリンク時に外部参照エラーになり、
cppファイル側のデストラクタをコメントアウトしてヘッダ内でインライン定義
するとリンク出来て期待通りに動作もしてくれるのですが、デストラクタや
他の関数は大丈夫なため原因がよく判りません。
templateの場合はvirtual関数はインライン定義しか出来ないなどの制限が
有るのでしょうか?
0651デフォルトの名無しさん
2006/04/25(火) 00:13:19exportキーワード・・・・・・
0652デフォルトの名無しさん
2006/04/25(火) 00:18:40それVC++でも使えないだろ。
0653638
2006/04/25(火) 00:34:42>>639
ググったらいろいろ出てきてしまって、どれが一般的な方法かわからなかった
ので、ここで皆さんにお聞きしてしまいました。
>>640
作らなきゃいけないプログラムが、Linux上のサーバーにWindowsからアクセス
するサンプルなので、Cygwinとかは反則になってしまいます ^^;
>>641
Shift JIS限定で、CAltString… 系と組み合わせればとりあえず変換できる
ことがわかりました。ググって引っかかったものにもあったので、とりあえずは
これで実装して、後で修正することにしました。
>>642
C/C++の標準ライブラリにそのような機能があるとは知りませんでした。
すみませんが、もう少し詳しく教えていただければ助かります。
ちょっと前の今は亡きCマガジンに、参考になりそうな記事があったようです
が、残念ながら手元にありません。機会があったら、バックナンバー置いて
ありそうな本屋に行ってみます。
0654デフォルトの名無しさん
2006/04/25(火) 01:48:07RegisterHotKeyで検索ダイアログをポップアップさせようとしているのですが、Visual C++のリソースエディタで作成したダイアログをポップアップさせることは可能なのでしょうか?
0655デフォルトの名無しさん
2006/04/25(火) 07:04:140656デフォルトの名無しさん
2006/04/25(火) 08:16:230657デフォルトの名無しさん
2006/04/25(火) 08:31:25今朝もトイレで起きようか、まだガマンしようかと悩んだよ。ダイヤログより簡単だが。
人生は悩み多し。
0658デフォルトの名無しさん
2006/04/25(火) 09:06:03流れ嫁。
>642はその後悉くからかわれている通り、何かの勘違いだ。
0659デフォルトの名無しさん
2006/04/25(火) 09:35:580660デフォルトの名無しさん
2006/04/25(火) 09:38:070661デフォルトの名無しさん
2006/04/25(火) 09:39:120662デフォルトの名無しさん
2006/04/25(火) 09:51:44EUC、SJIS、ISO-2022位は相互変換も簡単だが、Unicodeが絡むと面倒でね。
つーか、そんなことくらい承知の上での発言だよな。
0663デフォルトの名無しさん
2006/04/25(火) 09:53:420664654
2006/04/25(火) 21:33:26ダイアログはCDialogは使っていません。
今手元にソースがないので忘れてしまいましたが、関数にリソースIDを渡して表示させる関数を私用しています。
ダイアログを表示させたいのではなく、Ctrl + Fなどのホットキーでダイアログをポップアップさせたいのです。
>>656
ダイアログを出すのに悩んでいるわけではありません。
0665デフォルトの名無しさん
2006/04/25(火) 21:35:200666デフォルトの名無しさん
2006/04/25(火) 22:30:340667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
2006/04/26(水) 16:23:18だよな。664 は隠しキーとかやりたいんかな。
むかし NEC の文豪にはよくあって遊んだ。
0669591
2006/04/26(水) 17:10:17「プリコンバイル済みヘッダーファイルを使用しない」
にプロジェクトの設定を変えたらビルドできた。
なんでこうなるのだろう?教えてエロイ人
0670デフォルトの名無しさん
2006/04/26(水) 17:15:240671654
2006/04/26(水) 18:16:09OnKeyDownはウィンドウのイベントハンドラですよね。
例えばエディタだったらメインウィンドウがひとつしかないから
それでよいかもしれないですが、どのウィンドウがアクティブになっていようが
たちどころに検索ダイアログを出すようにしたいわけです。
で、調べたら見つかったのがRegisterHotKeyだったのですが(猫でもわかる・・・の第193章)
ダイアログの作り方がだいぶ違い、それなりにコーディングしても
WM_HOTKEYに制御が来てなくて(ホットキー自体は設定できていたようですが)
そもそもVCのリソースエディタで作ったダイアログのプロシージャに
ホットキー制御を渡せるものかと疑問に思っている次第です。
>>667
隠しキーをしたいわけではないです。
0672デフォルトの名無しさん
2006/04/26(水) 19:27:520673デフォルトの名無しさん
NGNG>そもそもVCのリソースエディタで作ったダイアログのプロシージャに
そもそもダイアログリソースが何なのか理解できていない悪寒。
0674デフォルトの名無しさん
2006/04/26(水) 19:36:540675デフォルトの名無しさん
2006/04/26(水) 21:30:30プロジェクト : error PRJ0003 : 'cmd.exe' の起動中にエラーが発生しました。
と表示されてしまいます。
システム環境変数で、%SystemRoot%\system32 とやったのですけど改善されないんですけど・・・
どうすればいいんでしょうか。
0676デフォルトの名無しさん
2006/04/27(木) 11:48:56つ[挫折]
0677デフォルトの名無しさん
2006/04/27(木) 12:39:430678デフォルトの名無しさん
2006/04/27(木) 19:42:26サイズ表示のソートが下記のようになってしまい、サイズの大小ソートにすることが出来ません。
どうすればよいのでしょう?
149byte
15byte
18954byte
(InsertColumn時の列設定はLVCFMT_RIGHT)
0679デフォルトの名無しさん
2006/04/27(木) 19:47:010680デフォルトの名無しさん
2006/04/27(木) 19:48:040681デフォルトの名無しさん
2006/04/27(木) 21:38:27ソートされてるじゃん。
0682デフォルトの名無しさん
2006/04/27(木) 22:51:040683デフォルトの名無しさん
2006/04/28(金) 00:29:450684678
2006/04/28(金) 12:46:040685デフォルトの名無しさん
NGNG0686678
2006/04/28(金) 14:30:31(Winエクスプローラで言えば、『サイズ』をクリックすれば数値ソートされる。)
InsertColumn時に引数に何か入れるのか、SetItem時の引数に何か入れるのか、
どちらでも無いのか分からないのです。
0687デフォルトの名無しさん
2006/04/28(金) 15:11:41>680
0688デフォルトの名無しさん
2006/04/28(金) 15:14:160689デフォルトの名無しさん
2006/04/28(金) 17:43:380690デフォルトの名無しさん
2006/04/28(金) 21:11:390691デフォルトの名無しさん
2006/05/02(火) 11:07:00プロジェクトを編集して、デバッグするためにF5を押すと「プロジェクトの構成が変更されています ビルドしますか?」と表示されますが、
これが何も編集せずにF5を押しても出てくるようになってしまいました。
コンパイルオプションを変更した時と同じようにソースコード全体をコンパイルしてしまい時間がかかります。
この現象はデスクトップPCからノートPCにプロジェクトをコピー後、ノートPCでプロジェクトを開くと起こるようになりました。
一体何が起こったのでしょうか。
0692デフォルトの名無しさん
2006/05/02(火) 11:12:510693デフォルトの名無しさん
2006/05/02(火) 12:57:09レスありがとうございます
ファイルを調べているうちに、やっと原因がわかりました
原因はOSの日付が間違って設定してあったせいでした。
つまりデスクトップの日付がノートPC現在の日時より何日か進んでいたために、デスクトップで作成されたソースコードが常に新しいファイルとしてVCに検知されてしまっていたのです。
日時を正しく設定することの大切さを学んだ気がします。
0694デフォルトの名無しさん
2006/05/02(火) 13:01:240695デフォルトの名無しさん
2006/05/03(水) 21:54:19クラスの定義を .h に書き、実装を .cpp に書いて
なおかつコンストラクタやメンバ関数に inline キーワードをつけるとコンパイルが通らなくなります
inline を外すか、あるいはヘッダファイル中に実装まで全部記述すればいいようですが
どうしてファイルを分けたらダメなのでしょうか
0696デフォルトの名無しさん
2006/05/03(水) 22:34:07いや分からんな
0697デフォルトの名無しさん
2006/05/03(水) 23:17:24それかどこかに同じようなライブラリ無いですか?凄く困ってるんで教えてください。
inet_ntoa()は諸事情により使えません。
0698デフォルトの名無しさん
2006/05/03(水) 23:42:580699デフォルトの名無しさん
2006/05/04(木) 00:37:44コンパイラが各cppファイル(翻訳単位)をそれぞれコンパイルした後、
できたオブジェクトファイルをリンカがくっ付けて1つの実行ファイルを作っている。
コンパイラは各翻訳単位を独立にコンパイルしている。
だから1つの翻訳単位を処理しているときには他の翻訳単位に目が行かない。
目が行かないから関数がヘッダに無い場合inlineかわからないし、わかってもインライン展開できない。
0700697
2006/05/04(木) 00:48:16WinSock.hの中身はどうしたら見れますでしょうか?
0701デフォルトの名無しさん
2006/05/04(木) 00:51:170702デフォルトの名無しさん
2006/05/04(木) 00:58:42ありがとうございます
0703デフォルトの名無しさん
2006/05/04(木) 00:58:56sprintf(str, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
こんな感じじゃねーの?
0704デフォルトの名無しさん
2006/05/04(木) 01:04:340705697
2006/05/04(木) 02:25:25ダウンロードするのが面倒だけど仕方無いか。
0706デフォルトの名無しさん
2006/05/04(木) 07:24:450707デフォルトの名無しさん
2006/05/04(木) 10:11:460708デフォルトの名無しさん
2006/05/04(木) 10:51:41代入したいんだけど、どうすればいい?
× b = Array(a);
× b = Convert::ToCharArray(a);
撃沈シマスタ、教えてくださいエロイ人
0709デフォルトの名無しさん
2006/05/04(木) 11:00:210710708
2006/05/04(木) 11:03:35: error C2440: '=' : 'unsigned char' から 'char [255]' に変換できません。
配列型への変換はありませんが、参照またはポインタから配列への変換があります。
沈みました
0711デフォルトの名無しさん
2006/05/04(木) 11:06:59unsigned char a = 'x';
char b[255];
b[0] = a;
でもエラーになると言い張るつもりか?
0712デフォルトの名無しさん
2006/05/05(金) 22:06:470713デフォルトの名無しさん
2006/05/06(土) 04:48:36何度もすみません。
ダイアログから、以下のように親ウィンドウにホットキー設定をして
RegisterHotKey(hParent, IDC_HOTKEY1, uMod, uVirtual)
親ウィンドウのプロシージャで
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_HOTKEY:
MessageBox(hWnd, "ホットキーが押されました!", "HOTKEY!", MB_OK);
break;
}
return 0;
}
としてホットキーを捕まえようとしているのですが、WM_HOTKEYに制御が来ません。
ただ、親ウィンドウにホットキー設定はできているようで、Alt+F4などを設定すると
デフォルトのウィンドウを閉じる動作が何も行なわれなくなります。
何か足りないのでしょうか?
(ソースは抜粋ですみません)
0714デフォルトの名無しさん
2006/05/06(土) 16:56:44リソースエディタがないってことなので無理なのかな?
C#みたいなエディタがついてないってこと?
0715デフォルトの名無しさん
2006/05/06(土) 17:07:060716デフォルトの名無しさん
2006/05/06(土) 17:10:19エディタがなくて作るって、コードでやるしかないんですよね?
GUIは手軽に作りたいんですけど・・
0717デフォルトの名無しさん
2006/05/06(土) 17:21:36そういうダサいのでよかったらVB使った方が楽だし
わざわざVC使う意味がないと思う。
0718714
2006/05/06(土) 17:28:36レスサンクスです
そうですか・・・でも、VBのコードの記述はどうも見た目が嫌なんですよね
文字だらけって感じで、あとゆくゆくは複雑な処理とかもやってみたいんで
ちなみに、かっこいいデザインってすごく興味湧きました
やった拘るならインターフェースもかっこよく行きたいんですけど
どこかでチラッと見たんですが、グラフィックソフトか何かで
GUIの部分ボタンなどを作ってその画像をはっつけてやるって手法があるみたいですが
そういうことをされてるんですか?
0719デフォルトの名無しさん
2006/05/06(土) 17:31:57これはちょっと・・・
無駄に独自デザインのコントロールの方がよっぽどかっこ悪い。
本人はカッコよいと思ってるんだろうけど、傍から見るとかなり痛い。
0720デフォルトの名無しさん
2006/05/06(土) 17:52:470721デフォルトの名無しさん
2006/05/06(土) 17:58:27リソースファイル(rc)自体はテキストファイルで自分で編集可能。
EEはMFCとかついてないからプラットフォームSDKいれてAPIをじかに呼び出すか、
GUIのライブラリも入れるかになるだろ、WTLも使えるみたいだし。
MFCはライセンス的に無理と思うのでMFC好きなら代わりにwxWidgets使ってろ。
0722714
2006/05/06(土) 18:08:39やっぱ、コードでやるんですね・・
どうもC++EEは無理っぽいです
0723デフォルトの名無しさん
2006/05/06(土) 20:11:59const char* b = reinterpret_cast<const char*>(a);でも大体は間に合うと思うけど。
本当に代入したいなら、配列は代入できないので個々の要素を代入する必要がある。
aがunsigned char a[255]だとしたらたとえばこう。
using namespace boost::lambda;
std::transform(boost::begin(a), boost::end(a), boost::begin(b), ll_static_cast<char>(_1));
0724デフォルトの名無しさん
2006/05/06(土) 22:17:45>708を読む限り、aはunsigned charなんじゃないか?
0725デフォルトの名無しさん
2006/05/07(日) 00:32:080726デフォルトの名無しさん
2006/05/07(日) 04:31:37C++だと楽なんじゃないかなーと思い
しかも、frameworkを入れなくてもいけるので
気軽に配布できるしってことで
学生時代に買って挫折してほったらかしだったVC++6.0を
またはじめようと思うんだけど、もう書籍もないですし
今からじゃ遅いですか?
0727デフォルトの名無しさん
2006/05/07(日) 04:34:180728デフォルトの名無しさん
2006/05/07(日) 14:00:23もしかして、もう分かったのかもしれないけど、
その抜粋を見て思ったのが、もしかして
default:
return (DefWindowProc(hWnd, msg, wp, lp));
が抜けてるんじゃないかと。
コールバック関数で捕捉しないメッセージはwindowsに確実に投げ返してやらないと。
>>717
VCで作るGUIで効果を発揮するのはマルチWindowのときだよ(MFC使用)、
独自にカスタマイズすると子ウィンドウ(ダイアログではない)と親ウィンドウの間のイベント処理がアミダみたいになってくる。
そうじゃないなら、VB使うのがベストセレクションと思う。
JAVAのGUIもいまいちだし、WIN32APPで作っても、VBの方が遥かに楽だし。
0729728
2006/05/07(日) 14:26:59default:
return (DefWindowProc(hWnd, msg,wParam,lParam));
それともうひとつ
case WM_COMMAND:
switch(LOWORD(wParam)){
default:
return (DefWindowProc(hWnd, msg,wParam,lParam));
}
も要るよ。WM_COMMANDはダイアログ使ってるし、終了処理で必ず使ってると思うけど。
0730デフォルトの名無しさん
2006/05/07(日) 16:32:27Visual C++ 2005 ProfessionalでプロジェクトをRelease構成でビルドしたのですが、
ビルドは成功するものの、出力フォルダ(Release)の中にexeファイルが見あたりません。
Debug構成の時も、デバッグ実行できるのにDebugフォルダにはexeファイルがないのです。
exeファイル形式以外の出力設定になっている、という事なのでしょうか。
Visual C++からでなく、スタンドアローンで起動できるexeファイルを作るにはどうすればよいのでしょうか。
0731デフォルトの名無しさん
2006/05/07(日) 16:49:19最新のVCでビルドを行ったところ、
http://msdn2.microsoft.com/ja-jp/library/ms177253(en-us,vs.80).aspx
ここに書いてあるような、ふるいVCでは通るが今回からは通らなく
なったようなコンパイルエラーが発生しました。
現在「C4430:型指定子がありません - int と仮定しました。メモ: C++ は
int を既定値としてサポートしていません」で躓いています。このエラーの
対象となっているヘッダファイルが
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\GdiPlusImaging.h
であり、MSが提供する共通のファイルですので、ここを修正するわけには
いかないと考えています。いったいどうすればよいのでしょうか?選択肢
としては以下のようなものを思いつきましたが・・・
1.バックアップをとって修正する。
→ 同様エラーが発生する場合に逐一修正を書ける必要があり、現実的ではない。
2.#pragma warningを使用する。
3.VCのバージョンを下げる
上記3項以外に妙案がありましたらご教授お願いします。
以上、よろしくお願いします。
0732デフォルトの名無しさん
2006/05/07(日) 17:40:10自己解決しました。
出力ファイルのパスが自分の想定と違う階層に設定されていただけでした。
他に疑問点がまた湧いたのですが、
Releaseディレクトリ内にexe出力ファイルの階層を設定したのですが、今度は
プロジェクト直下(Releaseディレクトリの一つ上)のファイルを実行時に読めなくなりました。
どの階層をカレントディレクトリと見なすか、という指定をビルド構成として設定する事は
できないのでしょうか?
0733デフォルトの名無しさん
2006/05/07(日) 17:42:270734デフォルトの名無しさん
2006/05/07(日) 18:05:04具体的にはどの項目をいじれば良いんでしょう?
0736デフォルトの名無しさん
2006/05/07(日) 19:42:510737デフォルトの名無しさん
2006/05/07(日) 20:00:57実際にどういう風にそのアプリを運用するんだ?
実行時には実行モジュールのある場所がカレントディレクトリである保証はないぞ。
IDE内から起動する場合についてはIDEの設定次第で変更できるし、
エクスプローラから直接起動する場合でもショートカットで変更できる。
>>735
>728の言うことはノイズと思ったほうがいい。
MFCにはMFCなりの長短所があるし、それは他の環境にもいえることだ。
>>731
目的がはっきりすれば、取るべき対策が決まるのではないか?
例えばVC8を使いたいのならば3の選択肢は有り得ないだろう。
0738デフォルトの名無しさん
2006/05/07(日) 20:45:00レスありがとうございます。
とりあえずVC8使いたいので3はなしですね。
2を試してみましたが、4430は取れたんですけど、
ほかにもごろごろエラーは存在します(すべて
コンパイラのバージョン違いに起因するようなもの
です)
なので地道にpragma指定すればいつかは全部
とれそうなんですけど、MSはこういうのを想定して、
さくっと解決してくれる方法を提供してないんですかねぇ・・・
0739デフォルトの名無しさん
2006/05/08(月) 04:01:49C++全然わからん・・・・
クラス宣言の仕方も、呼び出し方も、API使う方法も、
ていうか、ヘルプ・・・断片的な説明だけでわからん・・・
まったくの初心者から例えば電卓ソフトを作るまでの一貫したチュートリアル作ってくれよ・・・
1週間たっても、Hellowしか打てないなんて・・・もうC++やめだ・・・
0740デフォルトの名無しさん
2006/05/08(月) 04:05:550741デフォルトの名無しさん
2006/05/08(月) 06:11:10中で計算する人が大変かも
0742デフォルトの名無しさん
2006/05/08(月) 09:59:530743デフォルトの名無しさん
2006/05/08(月) 13:46:50そういわずに地道にやってけよ
最初はどんな作業でも混乱するし、わけわからんもんだし
CでもC++でもJAVAでもC#でもVBでも
本一冊読んですべてを理解できても使いこなせるなんて
わけ無いし。
諦めずに一歩ずつつ進みましょう。
0744デフォルトの名無しさん
2006/05/08(月) 14:23:00おれも欲しい
0745デフォルトの名無しさん
2006/05/08(月) 15:33:58同じライブラリが使えるから文法の勉強に集中するにはよさそう
0746739
2006/05/08(月) 16:56:39>>744
>>743
どうも励ましありがとう。こんなやさしい人がいるとは
プログラマって根暗のキチガイしかいないと思ってたけど違うんですね
そうですねーいきなりAPIアプリってのが難しいんでしょうね
CLIなら初歩的な関数はヘルプみなくても書けるんでまずそこからのほうがいいですね
なんとなくわかってきたのが、frameworkなどの関数群に当たるのが
MFCだったりPratformSDKに含まれるAPI関数だったりするんですよね?
で、非MFCのAPIアプリを作る場合、API関数だけでイベント(メッセージ?)処理や
GUIへの操作をしなきゃだめってことかな?だとしたら、大変だな・・・
0747デフォルトの名無しさん
2006/05/08(月) 18:06:31Visual C++以外にも言えることなんですけど、Visual Studio 2005 Express Edition(無償)
ではソフトの配布まで出来るのでしょうか?
本を買って読んでみたところアイコンファイル、画像ファイル作成、セットアッププロジェクトの作成は
出来ないと書いてあるのですが・・・どうなんでしょう
0748デフォルトの名無しさん
2006/05/08(月) 18:15:37コンパイルしてできたexeを配布すればいい
0749デフォルトの名無しさん
2006/05/08(月) 18:33:31インストール形式では作れないということですね
0750デフォルトの名無しさん
2006/05/08(月) 18:37:01販売もできるよ
アイコンエディタは標準ではついてないけど
あれで作る人もいないし、いらない機能
あと、インストール形式にもできるよ
0751デフォルトの名無しさん
2006/05/08(月) 18:43:41他のフリーソフトと組み合わせるってことですかね。
0752デフォルトの名無しさん
2006/05/08(月) 18:48:58そういうこと
0753デフォルトの名無しさん
2006/05/08(月) 18:55:240754デフォルトの名無しさん
2006/05/08(月) 20:01:49コンパイルしてできたexe は .Net FrameWork2.0
がインストールされた環境でないと実効不可。
0755デフォルトの名無しさん
2006/05/08(月) 20:26:360756713
2006/05/08(月) 22:15:30ありがとうございます。一応ご指摘いただいた箇所はVC++の自動生成されたコードで満たされているようです。以下が完全なウィンドウプロシージャです。
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc;
INITCOMMONCONTROLSEX ic; // ← これが何か判らない
switch (message) {
case WM_COMMAND:
wmId = LOWORD(wParam); wmEvent = HIWORD(wParam);
// 選択されたメニューの解析 :
switch (wmId) {
case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break;
case IDM_EXIT: DestroyWindow(hWnd); break;
default: return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT: hdc = BeginPaint(hWnd, &ps);
// TODO: 描画コードをここに追加してください...
EndPaint(hWnd, &ps); break;
case WM_DESTROY: PostQuitMessage(0); break;
case WM_CREATE:
ic.dwSize = sizeof(INITCOMMONCONTROLSEX); // ← 猫さんとこと同じ書き方で書いてみた
ic.dwICC = ICC_HOTKEY_CLASS;
InitCommonControlsEx(&ic); break;
case WM_HOTKEY: MessageBox(hWnd, "ホットキーが押されました!", "HOTKEY!", MB_OK); break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
なぜ出来ないのかが本当にわからず、Webを探しても完全なサンプルが見つからず本屋で何冊も良いサンプルがないか立ち読みしたんですが解決には至っていません。
0757713
2006/05/08(月) 22:16:51見づらくなっています。すみません m(_ _)m
0758デフォルトの名無しさん
2006/05/08(月) 22:20:54大規模ならVC
とよく聞きますけど
なぜなんでしょうか?
VBで小規模を手軽に作れるなら大規模でも簡単に作れそうな気ガしますが
0759デフォルトの名無しさん
2006/05/08(月) 22:28:04ガムテープは大規模用
0760デフォルトの名無しさん
2006/05/08(月) 22:38:25大きくなると無視できなくなる。
0761デフォルトの名無しさん
2006/05/08(月) 22:55:500762デフォルトの名無しさん
2006/05/09(火) 03:11:34またそのIDに対して番号ふられるけど、元の番号を
resource.hから削除していった方が良いんでしょうか
それとも元のIDはIDで保存しとくべきなんでしょうか
追加してIDを変更して新たなIDをあてがっても番号
は衝突しなさそうなのですが、なんとなく無駄な気がします
そこのところはどうなんでしょうか?
教えてほしいです。
0763デフォルトの名無しさん
2006/05/09(火) 05:45:24気になるなら好きにすればいい
0764デフォルトの名無しさん
2006/05/09(火) 07:19:330765デフォルトの名無しさん
2006/05/09(火) 08:28:360766713
2006/05/09(火) 10:15:57RegisterHotKey() の第一引数に渡している HWND が
対象としている HWND ではないのが原因でした。
以下のように書き換えたところ、とりあえずホットキーが取れました。
----
static hWnd_parent;
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
...
hWnd_parent = hWnd;
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {
static HWND hParent = GetParent(hDlg);
...
// RegisterHotKey(hParent, IDC_HOTKEY1, uMod, uVirtual); // これだとうまくいかない
RegisterHotKey(hWnd_parent, IDC_HOTKEY1, uMod, uVirtual);
----
GetParent(hDlg) で取れた hParent と DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About)
に渡した hWnd が違うモノなのがいまいちよく理解できていませんが、調べてわかったらまた報告します。
0767デフォルトの名無しさん
2006/05/09(火) 10:26:150768デフォルトの名無しさん
2006/05/09(火) 10:35:290769デフォルトの名無しさん
2006/05/09(火) 13:47:44ショートカットキーを教えてください。
Ctl+TABでソース間の移動はできるのですが、
ソースから出力結果のウィンドウへの移動が行えません。
もちろんマウス使えばできます。
ペインという用語は間違ってるかもしれません。よろしくです〜
0770デフォルトの名無しさん
2006/05/09(火) 13:53:01なんでマウスじゃだめなの?
0771デフォルトの名無しさん
NGNGMDIの子ウィンドウ切り替えと同じ。
0772769
2006/05/09(火) 14:02:32それ言い出したら、ショートカットキーとか、アクセスキー不要になりません?
>>771
それって、Ctr+Tabですよね、ソースウィンドウの切り替えしかできないんですけど;;
0773デフォルトの名無しさん
2006/05/09(火) 14:26:310774デフォルトの名無しさん
2006/05/09(火) 14:40:210776デフォルトの名無しさん
2006/05/09(火) 15:04:13のびたの癖に生意気だぞぉ〜
0777デフォルトの名無しさん
2006/05/09(火) 16:10:19ただし、リソースのプロパティでIDを
MYMENU→"MYMENU"
MYDLG→"MYDLG"
に変えて。もちろんcomctl32.libはプロジェクトの設定でリンクさせる
0778デフォルトの名無しさん
2006/05/09(火) 16:31:09MAKEINTRESOURCEも使える
0779デフォルトの名無しさん
2006/05/10(水) 09:35:23あるクラスの実装などで、メモリーを確保した時、必ず後でメモリーを開放しなければいけないのでしょうか?
また、開放するコードが必要なタイミングを教えて下さい。
0780デフォルトの名無しさん
2006/05/10(水) 09:41:220781デフォルトの名無しさん
2006/05/10(水) 09:57:250782デフォルトの名無しさん
2006/05/10(水) 10:01:250783デフォルトの名無しさん
2006/05/10(水) 10:09:47C#や、VB.Netの場合、
スコープがクラスで確保する以外は開放するコードが不要で、コンパイラが自動でしてくれるらしいのですが、
C++の場合、実装コード自体、どのレベルで実装しているのかがイマイチ分からないんです。
全ての実装で最後に開放するコードを書くのは、全体のコードが長くなって大変で面倒。
0784デフォルトの名無しさん
2006/05/10(水) 10:15:19自分で書く分に関しては、極力newやmalloc()を使わないようにし(標準コンテナを使う)、
もし使う場合は関数内で確保と解放を対にするかデストラクタで保証する。
0785デフォルトの名無しさん
2006/05/10(水) 10:17:320786デフォルトの名無しさん
2006/05/10(水) 10:26:250787デフォルトの名無しさん
2006/05/10(水) 10:30:410788デフォルトの名無しさん
2006/05/14(日) 07:47:51if文で躓きました。。
1900年〜2000年までの西暦を入力して元号(�香A�氏A�潤A�~)を
表示するプログラムを作れ。入力範囲を超える場合、「入力範囲を超えています。」
と表示。
という問題なのですが、どなたか教えていただきたいです。
0789デフォルトの名無しさん
2006/05/14(日) 07:54:350790デフォルトの名無しさん
2006/05/14(日) 08:05:26したいことを順番に、大体でいいから文章で書いてみよう。
たとえば
int main()
{
//変数の宣言
//西暦を入力
//もし、入力された数値が範囲を超えていたら
//「入力範囲を超えています」と表示
//そうでないなら
//元号がいつか調べる
//元号を表示
return 0;
}
こんな風にしてから、一つずつプログラムに書いていくと流れが分かりやすいよ。
if ( 条件 )
{
処理
}
もし、条件が合う時、処理をする。
0791デフォルトの名無しさん
2006/05/14(日) 09:36:560792デフォルトの名無しさん
2006/05/14(日) 21:12:26UIしか担当できないやつでもC++を語るかw
VCはUIのためと断言できる境地はすごいと思います、これからも頑張ってください
0793デフォルトの名無しさん
2006/05/14(日) 21:30:530794デフォルトの名無しさん
2006/05/15(月) 00:05:06これをなんとかしてまっすぐに表示できませんか?
0795デフォルトの名無しさん
2006/05/15(月) 00:12:070796デフォルトの名無しさん
2006/05/15(月) 00:23:02非マナー非マナー非マナー非マナー非マナー非マナー
非マナー非マナー非マナー非マナー非マナー非マナー
非マナー非マナー非マナー非マナー非マナー非マナー
ーナマ非ーナマ非ーナマ非ーナマ非ーナマ非ーナマ非
ーナマ非ーナマ非ーナマ非ーナマ非ーナマ非ーナマ非
ーナマ非ーナマ非ーナマ非ーナマ非ーナマ非ーナマ非
非マナー非マナー非マナー非マナー非マナー非マナー
非マナー非マナー非マナー非マナー非マナー非マナー
非マナー非マナー非マナー非マナー非マナー非マナー
0797デフォルトの名無しさん
2006/05/15(月) 00:23:16凄く長い本文をつけられるような方法があれば教えてもらえませんでしょうか?
HINSTANCE hInst = ShellExecute(NULL, "open", "mailto:[email protected]?body=本文...", NULL, NULL, SW_SHOWNORMAL);
と今はしているのですが、これだとある程度文章が長くなると起動できなくなってしまうようでした。
よろしくお願いします。
0798デフォルトの名無しさん
2006/05/15(月) 00:58:48wininet 使ってinternetopen()関数やらを書いてみるとデバッグ
エラー出るんです。。。
///////////////////////////////////////
'InternetOpenW' : 1 番目の引数を 'const char [16]' から 'LPCWSTR' に変換できません。
///////////////////////////////////////
ってな感じです。
0799デフォルトの名無しさん
2006/05/15(月) 01:00:16プロジェクトでUNICODEの設定を外せ
0800デフォルトの名無しさん
2006/05/15(月) 01:03:42マルチバイト文字とワイド文字については理解していた方がいいと思われ。
0801デフォルトの名無しさん
2006/05/15(月) 08:19:31>>799氏が指摘しているように、
#define UNICDE
もしくは
#define _UNICDE
がどっかで定義してある。
#define MBCS
に変更しる
0802デフォルトの名無しさん
2006/05/15(月) 13:24:00何故でしょう。
#define TEST
#define TEST_DEF defined(TEST)
#if TEST_DEF
// A
#else
// B
#endif
0803デフォルトの名無しさん
2006/05/15(月) 14:08:210804802
2006/05/15(月) 14:13:46TESTが定義されているから、TEST_DEFは真になる。
TEST_DEFが真なら Aを通る、と思ったのですが、Bを通ります。
試しに
#if defined(TEST)
と書き換えると、ちゃんと Aを通ります。
0805デフォルトの名無しさん
2006/05/15(月) 14:23:27#define TEST_DEF defined(TEST)
#define TEST
と逆にすればAになるから
#define TEST_DEF defined(TEST)
が
#define TEST_DEF defined()
と評価されているらしい。
g++だと逆にしなくてもAになる。どっちが標準なのかは知らないが評価順序の違いじゃね。
0806デフォルトの名無しさん
2006/05/15(月) 14:26:570807802
2006/05/15(月) 14:57:01>> 805
なるほど。
調べてみたらたしかに「#ifなどの条件付き取り込みの評価に先だって、
置換処理によって definedが生成される場合は動作は未定義」(X3014 16.1.4)
とありました。
>> 804
未定義だから、なんでしょうね。
0808デフォルトの名無しさん
2006/05/16(火) 00:08:40C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。
というのがやたらでます・・・
0809デフォルトの名無しさん
2006/05/16(火) 00:18:070810デフォルトの名無しさん
2006/05/16(火) 20:20:390811デフォルトの名無しさん
2006/05/16(火) 20:33:52ぐぐるとエラー解決法とかは出てくるんですが
意味見たいのがなかなか見当たらなくて困ってます
0812デフォルトの名無しさん
2006/05/16(火) 21:02:56param.txtファイルの中身は、毎回変わります。
int main()
{
for(i=1 ; i<=10 ; i++){
param.txtファイルの作成をこのあたりで行う;
system("my.exe param.txt");
}
}
その場合、不正なparam.txtファイルを与えると、my.exeがエラーして
"問題が発生したため、my.exe を 終了します"
というポップアップウインドウが開くのですが、それを出さずに、エラーしたとしても無視して
引き続き次のループを実行したいのですが、可能でしょうか?
つまり、何十時間もかかるようなループを自動で実行している時に、エラーで中断させたくないのです。
アドバイスよろしくお願いします。
0813デフォルトの名無しさん
2006/05/16(火) 21:06:31my.exeの実行に時間が掛かるのでなければ、
CreateProcess()を使って並行動作させてしまえばいい。
どれかのmy.exeが落ちたとしても、そのプログラムは
動作しつづけられる。
#それよりも何よりも、不正なparam.txtを作らないとか、my.exeを修正するのが常道だが。
0814デフォルトの名無しさん
2006/05/16(火) 21:13:05〜
if (ファイルオープン 失敗)
{
失敗処理
continue;
}
〜
}
0815デフォルトの名無しさん
2006/05/16(火) 21:38:59ありがとうございます。
my.exeは、ある種のシミュレーションプログラムで、
メモリもCPUリソースもたくさん消費するので、複数同時に実行させることはできないのです。
また、一回の計算(例えばi=1のとき)で、数時間かかるので、10回計算させるには数十時間かかります。
また、param.txtファイルに関しては、シミュレーションの初期設定のような感じの情報が
記述されていますが、内容が正しくても数時間の計算で途中でエラーしてしまうことがあるんです。
さらにそのmy.exeは、他の人が作っているプログラムなので、私が自由に変更できないんです。
そういういろいろな制約がありますので、とにかくポップアップウインドウを出さずに
エラーしてもしなくても、最後まで連続で計算させたいのですが。
0816デフォルトの名無しさん
2006/05/16(火) 21:48:32絶対ググってないだろ。
0817デフォルトの名無しさん
2006/05/16(火) 22:21:19http://www.atmarkit.co.jp/fwin2k/win2ktips/527apperror/apperror.html
これ設定たら終わりじゃねーの?
0818デフォルトの名無しさん
2006/05/16(火) 22:36:38情報ありがとうございます。大変参考になります。
でもちょっと気がかりなのは、最後のほうに書かれている
なお[重大なエラーが発生した場合は通知する]チェック・ボックスをオフにしたときでも、
Visual Studioなどの開発ツールをインストールしている場合は、以下のようなエラー通知
ダイアログが表示される。
とありますので、別のポップアップが開くようですね。困った。
0819デフォルトの名無しさん
2006/05/16(火) 23:18:50AeDebugレジストリを消去すれば出なくなる。(JITデバッグが不可能になるということでもあるが)
0820デフォルトの名無しさん
2006/05/16(火) 23:19:59class ABC
{
public:
ABC()
: mr_d(NULL) { }
~ABC()
{ }
て記述があるんですが5行目の:が1日かけて調べてもわかりません
コンストラクタでmr_dを初期化してるように思うんですが
参考書では
ABC(){mr_d=NULL;}
という書き方しか載っていないんです.こういう書き方も存在すると考えていいんでしょうか?
他に同じように":"を用いる書き方ってありますか?
教えてください><
0821デフォルトの名無しさん
2006/05/16(火) 23:21:16猫でも(ryかWisdomSoftに行け。
0822デフォルトの名無しさん
2006/05/16(火) 23:22:030824デフォルトの名無しさん
2006/05/16(火) 23:29:12ありがとうございます。
レジストリを変更する以外に方法はないでしょうか?
わたしのPCであればそれで解決なのですが、他人のPCや、
お客さんのPCでも実行したいので、レジストリ変更の方法は
避けたいです。
よろしく。
0825デフォルトの名無しさん
2006/05/16(火) 23:35:24VectoredExceptionHandlerでも導入する手はどうか。
0826デフォルトの名無しさん
2006/05/16(火) 23:37:15「はい」「いいえ」をソフトで押すアプリを作る手もあるな
0827デフォルトの名無しさん
2006/05/16(火) 23:39:570828デフォルトの名無しさん
2006/05/16(火) 23:47:350829デフォルトの名無しさん
2006/05/16(火) 23:50:41ありがとうございます。
実はCreateProcess()の方法でもトライしてみたのですが、エラーが発生すると
やはりポップアップダイアログが表示されてしまうのですが。
それともCreateProcess()関数のパラメータの与え方を工夫すると、
ポップアップ表示を無効にできますか?
0830デフォルトの名無しさん
2006/05/16(火) 23:55:08どう考えてもVCと関係があるとは思えないな
いいかげんにしてほしいものだ
0831デフォルトの名無しさん
2006/05/17(水) 00:03:52ここら辺を参照すること。CreateProcessを使うのは最低条件。
この上にコードインジェクションで自分で書いたmy.exe用の例外処理コードを滑り込ませる
0832デフォルトの名無しさん
2006/05/17(水) 00:17:11systemで他のプログラム呼んでるだけだぞ
0833デフォルトの名無しさん
2006/05/17(水) 00:46:58ありがとうございます。教えていただいたHP、
難しくて、よく理解できませんが勉強してみます。
でも本当はWindowsのVCとLinuxのgccの両方でコンパイルしたいので
system()で簡単にできればと思っているのですが。無理のようですね。
0834デフォルトの名無しさん
2006/05/17(水) 03:53:53cppファイルやrcファイルを変更しても反映されません。
ビルドしてコンパイルして起動すると最初のままです。
どうしてなのでしょうか。
パスの違いなどではないっぽいんですが。
0835デフォルトの名無しさん
2006/05/19(金) 11:21:180836デフォルトの名無しさん
2006/05/20(土) 10:21:31cl.exeを実行しようとすると、「cl.exe - コンポーネントが見つかりません」
とエラーが出ます。「mspdb80.dllが見つからなかったため、このアプリケーションを
開始できませんでした。アプリケーションをインストールし直すとこの問題は
解決される場合があります。」と言っているのですが、他のマシンにインストールしても
同じエラーが出ます。実際には以下のフォルダに存在しているのですが…
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
C:\Program Files\Microsoft Visual Studio 8\VC\bin\amd64
環境変数はPATHにC:\Program Files\Microsoft Visual Studio 8\VC\binを加えた
だけなのですが、他にも環境変数の設定が必要、ということなんでしょうか?
ちなみに、Visual Studio上ではclは実行できています。
0837デフォルトの名無しさん
2006/05/20(土) 10:28:24スタートメニューのプログラム→Visual C++ 2005 Express Edtion→Visual Studio Tools→Visual Studio 2005 コマンドプロンプト
0838デフォルトの名無しさん
2006/05/20(土) 10:57:190839デフォルトの名無しさん
2006/05/20(土) 18:56:56コントロールとか使う前にClassWizardでソースに追加しなきゃいけないのが、しばしわからなくていろいろやっててやっとわかった程度。
あの追加するときの種類で「コントロール」「値」はいいんだけど「Value」ってなんだ?
ちなみに値って参照するだけ用なんだな。
0840デフォルトの名無しさん
2006/05/20(土) 19:07:01何と比べているのか理解不能
0841デフォルトの名無しさん
2006/05/20(土) 19:43:360842836
2006/05/21(日) 08:51:410843デフォルトの名無しさん
2006/05/21(日) 10:58:190844ろぼっと
2006/05/21(日) 18:08:42というのがないと出来ないそうなので、Micrlsoftからそれをダウンロードして
インストールしたんですが、プログラムの中に入ってないみたいで、学習できません。
どうすればいいでしょうか?
すまんが上げさせてもらいます
0845デフォルトの名無しさん
2006/05/21(日) 18:24:580846ろぼっと
2006/05/21(日) 18:26:590847デフォルトの名無しさん
2006/05/21(日) 18:29:220848ろぼっと
2006/05/21(日) 18:30:59おながいですから、VisualC++がどうやったら出来るか教えてください
0849ろぼっと
2006/05/21(日) 18:31:50おまえら態度悪いな、おまえらには聞いてねーよ。
親切な人教えてください。
0850デフォルトの名無しさん
2006/05/21(日) 18:32:240852デフォルトの名無しさん
2006/05/21(日) 20:53:57もうVC6は売ってネエ
0853デフォルトの名無しさん
2006/05/21(日) 21:40:55無料だからコレ使え
0854デフォルトの名無しさん
2006/05/22(月) 21:41:25VC++.NETで、
class abcd
{
〜〜〜
}
abcd.(エー、ビー、シー、ディー、ドット)
ってやった時に、
今まではポップアップでクラスのメンバが選べたのですが、
急にポップアップがでなくなりました。
元に戻す方法を教えてください。
0855854
2006/05/22(月) 21:44:00class ABCD
{
〜〜〜
};
ABCD abcd;
abcd.
とりあえず今までは正常に動いてたということを前提でお願いします。
0856デフォルトの名無しさん
2006/05/22(月) 22:28:17可能性は2つある。
1)***.ncbが壊れた
この場合そのプロジェクトのフォルダーにある***.ncbを削除すれば復活する
2)コードの途中で不注意に終わるべきものが終わってない場合
例
printf(" ajoasoa);
abcd.←ここでは上の引用符が閉じてないのでインテリ扇子は動作しない。
0857デフォルトの名無しさん
2006/05/22(月) 23:47:08printf("%s\n" , "123");
とすると改行コードが'0D0A'になってしまいます。
0858デフォルトの名無しさん
2006/05/23(火) 00:14:31バイナリモードでファイルを開く。
stdoutに対してもfreopenが使えるから、
printfでも\nを\n(0A)として出力させるようにはできる。
0861デフォルトの名無しさん
2006/05/23(火) 07:24:520862デフォルトの名無しさん
2006/05/23(火) 07:35:020863デフォルトの名無しさん
2006/05/23(火) 09:04:43はどう?
0864デフォルトの名無しさん
2006/05/23(火) 09:10:410865デフォルトの名無しさん
2006/05/23(火) 10:48:11コントロール一覧のウインドウが表示されなくなっていました。
どうやればまた表示できますでしょうか。
0866デフォルトの名無しさん
2006/05/23(火) 12:50:43初心者は回答しなくていいよ。
0867デフォルトの名無しさん
2006/05/23(火) 19:48:06テキストモードでの 0A -> 0D 0A変換が、いったいどこで行われるのかを
気にかけるべきだと思うが。
0868857
2006/05/23(火) 21:44:54result = _setmode( _fileno( stdin ), _O_BINARY );
とopenする前にしてみたんですが、result に-1が返ってきて
バイナリモードに変換できません。どうしてでしょうか。
0869デフォルトの名無しさん
2006/05/23(火) 21:47:030871デフォルトの名無しさん
2006/05/23(火) 21:52:23>858
0872857
2006/05/24(水) 01:21:01freopenをする前に
result = _setmode( _fileno( stdout ), _O_BINARY );
するということではないのでしょうか?
0873デフォルトの名無しさん
2006/05/24(水) 12:34:46リリースでビルドしようとすると、外部ライブラリのシンボルが片っ端から
未解決になります。
プロジェクトの設定はデバッグ・リリース共同じなのですが。
0874デフォルトの名無しさん
2006/05/24(水) 12:46:400875デフォルトの名無しさん
2006/05/24(水) 13:23:090876デフォルトの名無しさん
2006/05/24(水) 13:40:08freopen()の説明を読んだ?
読んだ上でそんな戯言を抜かすのなら阿呆だ。
#尤も、MSDNのfreopen()の項のサンプルは間抜けだが。
0878デフォルトの名無しさん
2006/05/25(木) 02:41:48freopenでバイナリモード指定すりゃ済む話だろ。
0879デフォルトの名無しさん
2006/05/25(木) 19:45:430880879
2006/05/25(木) 19:46:170881デフォルトの名無しさん
2006/05/25(木) 21:13:34Releaseビルドすれば最適化機能が有効になる。
0882デフォルトの名無しさん
2006/05/25(木) 21:22:250883デフォルトの名無しさん
2006/05/25(木) 23:12:08TCHAR とかの T って何の略ですか?
0884デフォルトの名無しさん
2006/05/25(木) 23:24:090885884
2006/05/25(木) 23:27:49ヌルーしてくれ。
0886883
2006/05/25(木) 23:51:57例えば _tcscpy_s などは T Char String CoPY Safe(?) などと推測しているのですが、
_tsprintf_s には 'c' がないので何でかなーって思ったのです。
0887デフォルトの名無しさん
2006/05/26(金) 00:22:04_tcscpy_sはそんな感じだと思う。
_stprintf_sのほうははワイド文字版の関数がswprintf_sだから、
それに合わせてcがないと思えばいいと思う。
_tcs/wcs〜となっているものはchar版がstr〜という名前になっている。
0889デフォルトの名無しさん
2006/05/26(金) 01:43:12なんでMSDNを読めといわれてさえ理解できないのだろう……_/ ̄|○
0890デフォルトの名無しさん
2006/05/26(金) 10:40:30ヘルプに書いてあったafx.hをインクルードしても使えませんが
何が原因でしょうか?
0891デフォルトの名無しさん
2006/05/26(金) 16:50:12main()
{
}
0892デフォルトの名無しさん
2006/05/26(金) 16:54:35main()内で生成されたインスタンスを別のクラス内などで使いたい場合は
どのような手段が有効なのでしょうか?
0893デフォルトの名無しさん
2006/05/26(金) 17:01:580894デフォルトの名無しさん
2006/05/26(金) 17:07:55引数で渡せばいいだろ。
0895デフォルトの名無しさん
2006/05/26(金) 20:28:00press any key continue
って文字が出てくるんですけど消す方法は無いのでしょうか?
0896デフォルトの名無しさん
2006/05/26(金) 22:46:17コマンドプロンプトから実行したりEXEのアイコンをダブルクリックして実行したりすれば表示されない。
0897895
2006/05/26(金) 23:05:43ありがとう
愛してる(^^)
0898895
2006/05/26(金) 23:49:59VCだとsystem関数は使えないんですか?
なんか"error C2065: 'system' : 定義されていない識別子です。"ってでるんですが・・・
画面をリセットさせたいんですけど・・・
DOSだと、" system("cls") "でできますよね?
VC++でのやり方を教えて下さい(><)
0899895
2006/05/26(金) 23:54:39<stdlib.h>をインクルードし忘れてただけみたいでした・・・
どうもすみません(><)
0900デフォルトの名無しさん
2006/05/27(土) 00:02:47WriteConsoleOutputを利用するんじゃなかったけ?
0901895
2006/05/27(土) 08:06:35WriteConsoleOutputとは何でしょう?
プログラム初心者なもので・・・
0902895
2006/05/27(土) 08:07:38間違えました・・>>900さんへのレスですw
0903デフォルトの名無しさん
2006/05/27(土) 11:38:20API
Console Functionsで調べると解る
0904デフォルトの名無しさん
2006/05/27(土) 12:45:34Windowsの関数。
0905デフォルトの名無しさん
2006/05/27(土) 19:22:38どうすれば直るのですか?
0906デフォルトの名無しさん
2006/05/27(土) 19:40:530907デフォルトの名無しさん
2006/05/27(土) 20:15:19それらしきファイルも見つからなかったのですが、手動で設定するしかないのでしょうか?
0908デフォルトの名無しさん
2006/05/27(土) 20:23:470909907
2006/05/28(日) 02:05:45設定に1分もかからないので手動でやりました(´・ω・`)
0910デフォルトの名無しさん
2006/05/28(日) 07:11:16GUIベースだとcout自体あまり使う機会は無いと思うのですが、
どうしても、というときはsprintf(foo,
0911デフォルトの名無しさん
2006/05/28(日) 10:03:17つBoost.Format, (ATL::)CStringT::Format
0912デフォルトの名無しさん
2006/05/28(日) 18:19:49基本的なことを学習するのに良いサイトをお教え願います。
0913デフォルトの名無しさん
2006/05/28(日) 18:22:430914デフォルトの名無しさん
2006/05/28(日) 18:26:570915デフォルトの名無しさん
2006/05/28(日) 18:32:130916デフォルトの名無しさん
2006/05/28(日) 20:43:340917905
2006/05/28(日) 20:53:43どう修正してよいか分かりません。
0918デフォルトの名無しさん
2006/05/28(日) 20:58:550919905
2006/05/28(日) 21:06:28動かないから言ってるんですが。無責任なことを言わないで下さい。
0920デフォルトの名無しさん
2006/05/28(日) 21:09:28なんだその態度。もう来なくていいよ
0921デフォルトの名無しさん
2006/05/28(日) 21:11:50責任ある回答を期待するなら無責任な質問はするなよ。
お前の質問じゃこの方しか答えられない。
ttp://ishizuka.net/ei/
0922デフォルトの名無しさん
2006/05/28(日) 21:54:53そもそも何がどう動かないのか書いてくれないと手助けのしようも無い。
0923デフォルトの名無しさん
2006/05/28(日) 21:59:12ほっとけ。質問の仕方も分からんやつはこのスレに来る資格は無い。
0925917
2006/05/29(月) 11:48:51本物の917です、winnt.hの220行目修正したら動きました。
typfef void * PVOID,* POINTER_64;
を
typfef void * PVOID;typfef void * POINTER_64;
にしたら直りました。
質問の仕方が悪くてすみませんでした。
0926デフォルトの名無しさん
2006/05/29(月) 12:33:040927デフォルトの名無しさん
NGNG0928925
2006/05/30(火) 22:25:12未だに正しい修正方法探してるけど見付からないし。
まぁ今の所異常は出てないから暫くは平気でしょ、多分。
0929デフォルトの名無しさん
2006/05/30(火) 22:46:03どうせヘッダーファイルの検索順が変わったとかそういうことだろ。
0930デフォルトの名無しさん
2006/05/31(水) 00:26:49好きに直してつかえ
929とかはタダのチキンなカス
0931デフォルトの名無しさん
2006/05/31(水) 07:11:36POINTER_64でググったら、<windows.h>をインクルードする前に
#define POINTER64 __ptr64と書けばよいという話が見つかるが。
0932デフォルトの名無しさん
2006/05/31(水) 08:37:470933デフォルトの名無しさん
2006/05/31(水) 10:30:500934デフォルトの名無しさん
2006/05/31(水) 23:22:38wが多いやつにまともなやつはいない
0935デフォルトの名無しさん
2006/06/01(木) 00:46:45wwwwww
wが多いぃやちゅにまともにゃやちゅはひぃにゃいぃのぉおお
0936デフォルトの名無しさん
2006/06/01(木) 14:08:32なんだよこれはwwwwwwwwwww
0937デフォルトの名無しさん
2006/06/01(木) 22:05:10GetFileTimeだと難しそうなのですが。
0938デフォルトの名無しさん
2006/06/01(木) 22:14:490939デフォルトの名無しさん
2006/06/03(土) 23:07:50メジャーで良い感じのってなんですか?
jpg とか gif から raw RGB565 に変換したいです。
0940デフォルトの名無しさん
2006/06/05(月) 14:21:16通常のC++/MFCでプログラムしているのですが.
その時にクラス構成などをXMLで出力したいと思ったとき
XmlSerializerを使えば出来ると聞いたのですが.
MFCとの共存が出来るのでしょうか
もしくはXML出力だけDLLにした場合
C++/MFCのアプリから参照できるのでしょうか?
どなたかお願いいたします.
0941デフォルトの名無しさん
2006/06/06(火) 21:37:17http://mechanics.civil.tohoku.ac.jp/soft/node43.html
jpgtoppmとかはunix関係で有名だな。
http://www.cs.cornell.edu/dali/examples/jpgtoppm/jpgtoppm.c.html
VC++じゃないが、汎用のCで書かれている。
094255
2006/06/07(水) 16:22:21ビルドしようとしています。このMakefileを見たところ、mfcuia32.libが
リンクに必要なようなのですが、私の環境(XP SP2+Visual Studio 2005
Standard Edition)ではこのファイルが存在しません。
このファイルは、XPのファイルでしょうか?それともVisual Studioのもの?
デフォルトではインストールされず、何かインストール時にオプションを
選択せねばならなかったのでしょうか?
Visual C++の質問じゃないような気もしますが、よろしくお願いします。
0943デフォルトの名無しさん
2006/06/07(水) 19:11:150944デフォルトの名無しさん
2006/06/07(水) 22:49:33mfcuia32.libはVC6のLibには含まれてる。
Exports
ordinal name
1 _OleUIAddVerbMenu@36
8 _OleUIBusy@4
2 _OleUICanConvertOrActivateAs@12
6 _OleUIChangeIcon@4
7 _OleUIConvert@4
5 _OleUIEditLinks@4
3 _OleUIInsertObject@4
4 _OleUIPasteSpecial@4
10 _OleUIPromptUser
9 _OleUIUpdateLinks@16
0945942
2006/06/07(水) 22:55:24ごもっとも…
>>944
なるほど、VCのバージョンの違いによるものなんですかね…
さてどうするか。VC6をどうにかして手に入れるか…
0946デフォルトの名無しさん
2006/06/07(水) 23:34:170947デフォルトの名無しさん
2006/06/08(木) 06:20:23ライブラリ自体の名前はたいした意味はない。
0948デフォルトの名無しさん
2006/06/08(木) 07:02:33なぜかC1001エラーが出てコンパイルできません。
追加したコードをコメントアウトしても同様です。
hoge\foolistview.cpp(63): fatal error C1001: コンパイラで内部エラーが発生しました。
(コンパイラ ファイル 'msc1.cpp'、行 1392)
コード追加直前までコンパイルできていたので、オプションは関係ないはずです。
何がまずいのでしょうか?
0949デフォルトの名無しさん
2006/06/08(木) 08:50:100950デフォルトの名無しさん
2006/06/08(木) 10:40:13もうなにがなんだか…。
0952デフォルトの名無しさん
2006/06/08(木) 17:48:47TRACE(_T("Data = %s\n"), ss);
これを、Unicodeビルドでやると、結果が
"Data = "
になってしまいます。マルチバイトビルドだと上手くいきます。
Unicodeビルドで上記の様なTRACEをやりたい場合、どのように記述すれば良いのですか?
0953デフォルトの名無しさん
2006/06/08(木) 17:59:040954デフォルトの名無しさん
2006/06/08(木) 18:05:47"Data = A"
となりました・・・
0955デフォルトの名無しさん
2006/06/08(木) 18:20:28適当にTRACE(_T("Data = %s\n"), static_cast<PCTSTR>(ss));
0957デフォルトの名無しさん
2006/06/09(金) 10:39:37VC++ではドキュメントとビューのクラスを用いてプログラムしますよね。
データを管理するクラスA、ビューのクラスB、ドキュメントのクラスCが
あるとすると、UIのイベントが発生して、データを変更する必要が生じた
場合、このAのメンバ関数を呼び出すのは、Cから呼び出すのが一般的だと
解釈して良いのでしょうか。
Bのクラスが直接Aのメンバ関数を呼び出すような形だと、Bのイベント処理
部分は、Aの実装に深く依存してしまいます。
(ただし小さいプログラムならば、これでもいいのでしょうが)
UI(イベント)→B→C→Aみたいな順で処理が進むのが理想だと思うのですが。
Cはちょうどフックというか、緩衝になりますね。
0958強いて言えばMFCか
2006/06/09(金) 11:09:15いいえ、そうプログラムするのはあなたの勝手ですが、VC++にそんな制限はありません。
0959デフォルトの名無しさん
2006/06/09(金) 11:35:47俺はBとCの間にも緩衝をいれることがよくある
UI→B→イベント仲介者→C→A
仲介者(Mediator)にはAppクラスを使うのがお手軽
0960デフォルトの名無しさん
2006/06/09(金) 12:28:45>>959 レスサンクス。
B-C間でイベントを仲介させるのはC→Aの処理の実装方法と何か関係が
ありますか?
Cの実装部分を変えれば、他のアプリに使いまわせるとか、そういう
概念でしょうか?
0961デフォルトの名無しさん
NGNGB-C間に仲介があると、ひとつのドキュメントに対して複数のビューが欲しいときに楽になる
からかと。
0963デフォルトの名無しさん
2006/06/09(金) 14:08:58Aの変更が複数のビューにまたがって影響を及ぼす場合があるなら、
Cに処理を移す前に、1つのイベントで複数の処理に対処しなければ
ならない、ということですね。
ありがとうございます。
0964デフォルトの名無しさん
2006/06/09(金) 15:34:49下記のような、ワード等のファイルを関連付けされたアプリで開いた後、
CTRL+A→CTRL+Cを行い、クリップボード内のテキストを取得しようとしたのですが、クリップボード内に入っていませんでした。
keybd_eventがファイル起動完了より先に来てしまうのが原因なのでしょうか?
だとしたら、どう修正すれば良いのでしょうか?
SHELLEXECUTEINFO shelli;
ZeroMemory(&shelli,sizeof(SHELLEXECUTEINFO));
//SHELLEXECUTEINFO構造体に変数を展開。
shelli.cbSize = sizeof(SHELLEXECUTEINFO);
shelli.fMask = SEE_MASK_FLAG_NO_UI | SEE_MASK_FLAG_DDEWAIT;
shelli.hwnd = m_hWnd;
shelli.lpVerb = _T("open");
shelli.lpFile = gFilePath;///ワードのパスを格納
shelli.lpParameters = NULL;
shelli.lpDirectory = NULL;
shelli.nShow = SW_HIDE;
ShellExecuteEx(&shelli);//実行
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event('A', 0, 0, 0);
keybd_event('A', 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event('C', 0, 0, 0);
keybd_event('C', 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
//クリップボード内テキスト取得処理
(省略)
0965デフォルトの名無しさん
2006/06/09(金) 16:09:140966デフォルトの名無しさん
2006/06/09(金) 16:13:110967デフォルトの名無しさん
2006/06/09(金) 16:14:29御願いします.>>
0968デフォルトの名無しさん
2006/06/09(金) 16:15:47テキストを描画
0969デフォルトの名無しさん
2006/06/09(金) 16:33:53詳しく教えてください!!!
御願いします(泣)
0970デフォルトの名無しさん
2006/06/09(金) 16:49:26それはネタなのかっ!?
0971デフォルトの名無しさん
2006/06/09(金) 16:54:01ネタ・・・・
ジャ無いっすよう〜(T_T)
0972デフォルトの名無しさん
2006/06/09(金) 17:04:03エディットコントロールに貼り付けてはいおーしまい。
とか、言われても知らんぞ
0973デフォルトの名無しさん
2006/06/09(金) 17:05:05話はそれからだ。
0974デフォルトの名無しさん
2006/06/09(金) 20:43:55正確に(かっこよく?)配置する方法はありませんか?
イメージとしてはC#のような。
0975デフォルトの名無しさん
2006/06/09(金) 22:53:46いざ、フォーム中のボタンなどを右クリックしてClassWisardを起動し、新規クラスの追加をしようとすると、
「クラス"○○"のファイル(C:\Documents ....)を開けません。」
と表示され、結局追加されません。
一応、cppとhファイルは作成されているようなのですが、ClassWisardには追加されていないので、
メンバ変数の設定なども出来ず、困っています。
このような場合、どのようにすればいいのでしょうか。ご教授をお願いします。
0976デフォルトの名無しさん
2006/06/09(金) 23:14:150977デフォルトの名無しさん
2006/06/10(土) 19:15:04面白そうだと思って色々妄想膨らましてたけど
いざ授業にでてみたら・・・
Visual C++ 1.5.1
何コレ・・・orz
これって画像とか使えるの?・・・
0978デフォルトの名無しさん
2006/06/10(土) 19:20:21おまえらはどっち使ってる?
もしくは、どう使い分けてる?
0979デフォルトの名無しさん
2006/06/10(土) 19:29:11昔のバージョンの方がapi少ないしソースも短くて読みやすいし
ドキュメントもしっかりしてて学習には向いてる。
今では入手困難なプレミアムつきのバージョンだな。
0980デフォルトの名無しさん
2006/06/10(土) 19:48:260981デフォルトの名無しさん
2006/06/11(日) 01:17:14CPU情報を表示するソフトを作りたいのですが
CrusoeのCPUが判定できる 外部DLLってありますか?
0982デフォルトの名無しさん
2006/06/12(月) 16:52:36アプリケーションの実行速度はどうですか?javaと似たようなものですか?
javaはあのもっさり感が何ともいえない。
0983デフォルトの名無しさん
2006/06/12(月) 17:43:44.NETでポトペタはC#向きJAVAと比べるのもC#
0984デフォルトの名無しさん
2006/06/12(月) 17:46:100985デフォルトの名無しさん
2006/06/12(月) 18:49:11http://pc8.2ch.net/test/read.cgi/tech/1150105712/l50
0986デフォルトの名無しさん
2006/06/14(水) 15:05:030987デフォルトの名無しさん
2006/06/14(水) 15:08:050988デフォルトの名無しさん
2006/06/14(水) 15:08:420989デフォルトの名無しさん
2006/06/14(水) 15:09:180990デフォルトの名無しさん
2006/06/14(水) 15:10:130991デフォルトの名無しさん
2006/06/14(水) 15:13:37ら,り⌒\
/ ノ ゙ヽ
{ /`Y´ _)
ヽ'^) >. )
0992デフォルトの名無しさん
2006/06/14(水) 15:53:560993デフォルトの名無しさん
2006/06/14(水) 16:01:070994デフォルトの名無しさん
2006/06/14(水) 16:15:400995デフォルトの名無しさん
2006/06/14(水) 16:17:400996デフォルトの名無しさん
2006/06/14(水) 16:23:190997デフォルトの名無しさん
2006/06/14(水) 16:25:140998デフォルトの名無しさん
2006/06/14(水) 16:26:020999デフォルトの名無しさん
2006/06/14(水) 16:27:071000デフォルトの名無しさん
2006/06/14(水) 16:27:3710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。