- 1 名前:Part28の1000 mailto:sage [2008/02/15(金) 01:45:56 ]
- Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5辺り。
- 657 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 15:09:25 ]
- MFCのLoadCursor使うならafxwin.hが必要でMFCとしてビルドしないといけない
- 658 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 16:21:45 ]
- もしかして>>648のエラーも
>error C2065: 'IDC_CURSOR1' : 定義されていない識別子です。 なのか? そうでないなら出たエラー書いてみて
- 659 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 16:29:47 ]
- あと、>>648 のその行以外は問題ないとすると
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_OWNDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(GetModuleHandle(NULL),MAKEINTRESOURCE(IDC_CURSOR1)), NULL, NULL, L"Cursor Test", NULL }; こうだな。GetModuleHandle(NULL)がかぶってるから、 事前に呼んでとっておくといい、けどこれWinMainの第一引数なんだけどな。
- 660 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:12:45 ]
- エラーが出なくなりましたが、今度はウインドウが出てこなくなりました。
正常だった記述に戻してもウインドウが出てこなくなりました。 中間ファイルもソリューションのクリーンで消しましたがだめです。WINごと再起動してもだめです。 DirectX9SDKのサンプルCreateDeviceのVS2005プロジェクトをVS2008で自動変換して取り込み自作カーソルリソースを新規作成で追加して #include "resource.h"追加と WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL, L"D3D Tutorial", NULL }; の部分を WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_OWNDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(GetModuleHandle(NULL),MAKEINTRESOURCE(IDC_CURSOR1)), NULL, NULL, L"Cursor Test", NULL }; に書き換えただけです。たすけてください。もう12時間これやってます^^;
- 661 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:18:42 ]
- エラーが出ないって事はコンパイルできたんだろ?
そしたら次はデバッガの使い方をだな・・・ とりあえず、F10連打だ
- 662 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 18:53:10 ]
- ああそうか!カーソルはこれでクリア出来てるってことですよね
LoadCursor(GetModuleHandle(NULL),MAKEINTRESOURCE(IDC_CURSOR1)) の意味と、CreateDeviceが失敗してるのはまた明日調べます。 まじありがとうございました。
- 663 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:00:16 ]
- ちょっとサンプルみたけど、hInst でいいんじゃん。
LoadCursor(hInst,MAKEINTRESOURCE(IDC_CURSOR1)) で。前のGet・・・につられたわ
- 664 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:24:36 ]
- 拾ったサンプルをあてずっぽうで改造?
ほとんど何も知らないでやってる?
- 665 名前:644 mailto:sage [2008/04/03(木) 20:28:26 ]
- >>647
dllのコピーは必要だけど、依存関係を設定するのはオススメ。 libのリンクを自動的にやってくれるし、 exeをビルドする前にdllをビルドしてくれるので、 古いdllを使ってハマルようなことがなくなる。 つまり 依存関係+ビルド後の処理でコピー と。
- 666 名前:647 mailto:sage [2008/04/04(金) 00:44:33 ]
- >>665
なるほどです。そうしてみました。
- 667 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 08:56:37 ]
- >>663
hInstで動きました。ありがとうございました。
- 668 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:09:59 ]
- PCSX2というソフトをコンパイルしたいんですがやり方がわかりません。
プログラムについての知識0です。 勉強したいとかではなくこのソフトがほしいだけです。 Microsoft Visual C++ 2008をとりあえずインストールしましたがやり方がまったくわかりません。 サルにも判るように教えてくれる方がいれば幸いです。 ttp://www.pcsx2.net/files/10490 ttp://pcsx2.svn.sourceforge.net/viewvc/pcsx2/pcsx2/GS.cpp?view=markup&pathrev=346
- 669 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:25:00 ]
- readme嫁
- 670 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 02:26:07 ]
- 勉強する気ないやつに教えるほど俺は性格良くないです
- 671 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 04:37:38 ]
- >>668
エミュレータでタダゲーしたいんだけど、コンパイルしないといけない。 だれか手取り足取り教えろ、ということか。 …たしかに何も教える気がまったく起こらんなw 初心者には寛容なほうなのだが。
- 672 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:00:14 ]
- 実は頭悪いだろ、ここの人たち
- 673 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 10:29:33 ]
- 残念ながらそんな煽りに乗るほどには悪くないんだな。(w
- 674 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 16:45:39 ]
- >>668
ここは勉強する意欲のある初心者に教えるスレであって 勉強するつもりもない素人に教えるスレではありません お帰り下さい
- 675 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 20:47:50 ]
- 今までXPで開発していましたがPCをVistaで新調して開発したところ、
Vista機では問題なく実行できるexeがXPマシンに持っていくとアプリケーション構成エラーが出て実行できません おそらく>>527さんとほぼ同じ症状で、/MTでコンパイルを通すと実行できるようにはなりますが ファイルサイズが大きくなるのでできるだけ/MDにしたいです 何か良い手段はないでしょうか VC2008を使用しています
- 676 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 21:08:55 ]
- それが嫌なら>528の方法
それも嫌ならライブラリ使わない
- 677 名前:675 mailto:sage [2008/04/06(日) 21:26:15 ]
- なるほど…
やはり基本的には/MTにするかランタイム導入を促す方向になるのですね ありがとうございました
- 678 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 21:32:39 ]
- ランタイムをインストールするのが嫌なら、
EXEと同じフォルダに置くという方法もできる。 マニフェスト関係が面倒だけど。
- 679 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:18:33 ]
- intやfloatの値をLPSTRに変換するにはどうすればいいですか?
- 680 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:26:55 ]
- キャスト
int i = ...; LPSTR s = (LPSTR)i;
- 681 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:39:25 ]
- すごいな。 いろいろと。 dobuleでなくて良かったとかそういう話なんだな。。
- 682 名前:デフォルトの名無しさん [2008/04/07(月) 03:11:47 ]
- どぶれ?
- 683 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 06:17:22 ]
- >679
CやC++でintやfloatを文字列に変換するのと同じでもいいし apiやMFC使う方法もある
- 684 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 06:19:08 ]
- でもfloatは対応してないのもあったかも
- 685 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 08:34:49 ]
- >>680
オマイ天才
- 686 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 08:42:03 ]
- 2008のMFCで、チェックボックスのメンバ変数を追加して、初期化時に
変数名 = TRUE; とすればチェックされた常態で起動されるとVC++6.0の本に書いてあるのですが error C2679: 二項演算子 '=' : 型 'int' の右オペランドを扱う演算子が見つかりません (または変換できません)。 のエラーが出てしまいます。 VBのようにプロパティにもそれらしき項目がないです。教えてください。
- 687 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 09:36:44 ]
- 何の問題もなくできたよ
- 688 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 10:06:14 ]
- 変数を作ったら
DDX_Control(pDX, IDC_CHECK1, as); この行が追加された。 で OnInitDialog()の中に as = TRUE; を追加してもだめです。
- 689 名前:デフォルトの名無しさん [2008/04/07(月) 10:27:05 ]
- このスレの住人なら知っていますね、あの糞開発ツールのことを
・自分のプログラムのバグなのかコンパイラのバグなのかわからない ・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している ・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている ・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる 糞だけど、政治的な理由で無理やり使わされているんですよね。 もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。 ・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。 ・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。 ・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。 バグレポートなどしてはいけません。改善要求などもってのほかです。 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。 ・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」 なんて話が出たら力強く机を叩き、会議室を出ましょう。 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。 糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
- 690 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 10:48:51 ]
- >>688
単にデフォルトでチェック状態にしたいなら as.SetCheck(BST_CHECKED) をすればいいんじゃないの?
- 691 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 12:21:28 ]
- できました。ありががとうございます。
できましたが、わからないことを逆引きできず、きりがありません、本も相当買いましたが、VBと違いまったく応用できません このまま一個ずつ積み重ねるしかないのでしょうか?
- 692 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 12:25:51 ]
- MSDNで調べる癖をつけましょう
それでもわからなければWebやメーリングリストの過去ログなども使いましょう CheckBoxの場合はCButtonというクラスの変数なのでそのメンバを調べましょう
- 693 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 13:01:00 ]
- DDX_Controlにするから型があわない
たぶん本に書いてあるのと違うことやってる
- 694 名前:デフォルトの名無しさん [2008/04/08(火) 17:56:11 ]
- Visual C++6.0を起動すると、
「ワークスペースにあるウィンドウのすべてを開くことはできません。」 という意味不明なメッセージボックスが表示されることがあります。 [OK]ボタンがひとつあるだけの単純なメッセージボックスです。 このメッセージは次のように言っているように聞こえます。 「ワークスペースにはウィンドウがいくつかある。あなたはそれをすべて 開こうとした。でもそれはできない。」 ??? 別に困っているわけではないのですが起動時に数回に一回の割合で出現するので 気になります。一体、このメッセージボックスは何が言いたいのでしょうか?
- 695 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:13:41 ]
- support.microsoft.com/kb/315617/ja
このぺージの ダイアログ ボックスでWebBrowserコントロールを使用 の部分なのですが、webbrowser2.hが存在していないエラーが出ます。2008では使えないんですか? 代りに何を使えば同じように使えるんでしょうか
- 696 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:45:02 ]
- msdn2.microsoft.com/en-us/library/aa752044.aspx
ここらへんをみるとwebbrowser2.hは、該当 ActiveXからMFCクラスを生成するとできる、 って書いてあるような気がする
- 697 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:47:36 ]
- >694
メニュー > ウインドウ
- 698 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 10:09:33 ]
- そこの英語ページぜんぜんわかりません
CWebBrowser2とIWebBrowser2の違いもわかりません。 ドキュメント自体しないですよね void CtestDlg::OnBnClickedOk() { //CWebBrowser2* hExp1 = (CWebBrowser2*)GetDlgItem(IDC_EXPLORER1) ; //hExp1->Navigate2((CString*)("www.google.com/intl/ja/"), &noArg, &noArg, &noArg, &noArg); IWebBrowser2* hExp1 = (IWebBrowser2*)GetDlgItem(IDC_EXPLORER1) ; hExp1->Navigate2((VARIANT*)("www.google.com/intl/ja/"), NULL, NULL, NULL, NULL); } これで起動するとコンパイルはできるのですが、ボタンをクリックすると test.exe の 0x78a49c05 (mfc90ud.dll) でハンドルされていない例外が発生しました : 0xC0000005: 場所 0x8b55ffdb を読み込み中にアクセス違反が発生しました。 と出てしまいます。VC++2ヶ月でこれはまだ早いですかね
- 699 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 11:03:06 ]
- IWebBrowser2はインターフェイスでCWebBrowser2はその実装されたクラスだけど多分難しいと思う
単に表示させたいならGetDlgItem使わずにダイアログに直接貼り付けてクラス変数作ってNavigateした方が楽だよ なんにしてもCOMとかActiveXとかめんどくさい物を勉強した方がいいと思う
- 700 名前:デフォルトの名無しさん [2008/04/09(水) 15:18:28 ]
- VC++6.0の初心者です。
マウスのイベントについて教えて下さい。 (漢字はよく読めないので、なるべく平仮名でお願う) MFC AppWizard(exe)を使って、しゅるい はダイアログベース(D)を使います。 1つめ. ダブルホイールマウスを使ってた。 マウスにかんけい知るイベントで、自分で調べて解ったのは WM_MOUSAWHEEL という奴ですが・・・ホイールが2つある、もっと、マウスで アプリケーションに必要な処理をおこうなうには何すれば? どう考えればいいでしょうか?
- 701 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:47:15 ]
- 日本語でOK
- 702 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 15:59:22 ]
- ホイールが二つあるマウスのイベントを拾いたい
- 703 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 17:39:18 ]
- 横ホイールか
- 704 名前:デフォルトの名無しさん [2008/04/09(水) 17:39:57 ]
- >>702さん。
Yes.ホイールが2つ以上あるマウスのイベントを拾いたいです。 (日本語あってる?)
- 705 名前:デフォルトの名無しさん [2008/04/09(水) 18:05:07 ]
- VisualC++2005のMFCのダイアログベースでプログラムを作成しています。
まだ初めて1ヶ月もたってないので初歩的なことを聞いてすいません。 OnInitDIalog内の//TODO: 初期化をここに追加します。 というところで font.CreateFont( 36, 0, 0, 0, FW_NORMAL, TRUE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, "Italic"); GetDlgItem(IDC_STATIC)->SetFont(&font); として、文字のフォントを変更しようとしました。 最初は問題なく変更できていたのですが、気づいたらいつの間にか変換できていませんでした。 ボタンを使って、ボタン動作で GetDlgItem(IDC_STATIC)->SetFont(&font); を行うと変更されますので、一度変更した後になんらかの理由で元に戻ってると推測していますが、その理由と場所がわかりません。 これだけの情報でわかれば教えていただけますか?
- 706 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:25:46 ]
- そのfontは保持し続けてるのか?
どこで宣言してる?
- 707 名前:デフォルトの名無しさん [2008/04/09(水) 21:21:31 ]
- long ldata[] = {0x00000000,0x00000001,0x00000002,・・・・・};
このような配列を、文字列、"0x000000000x000000010x00000002・・・・・" と変換するにはどのようにしたらいいでしょうか。 また、この文字列を逆に配列に戻すことは可能でしょうか。
- 708 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:40:00 ]
- VCというよりCかC++を勉強すれば可能
- 709 名前:デフォルトの名無しさん [2008/04/09(水) 21:54:15 ]
- >>708
ありがとうございました。可能ということで、勉強したいと思います。
- 710 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 22:33:41 ]
- >>709
sprintfとかで速効
- 711 名前:705 [2008/04/10(木) 09:50:43 ]
- >706
一応グローバルで宣言してるつもりで関数の外で宣言してます。 ちなみにC言語は初心者レベルで理解してるつもりです。 まだ、簡単なソフトを1つ作っただけですが。。。初心者レベルで。
- 712 名前:デフォルトの名無しさん [2008/04/10(木) 10:50:01 ]
- 最近VisualC#2008 Expressをダウンロードして使っているものです。
質問なのですが、 イミディエイトウィンドウを使ってコマンドを入力してデバッグできる ことを知ったのですが、普通にGUI上からデバッグするだけでは できないことや効果的な利用方法などがあったら教えて頂きたいです。
- 713 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 10:53:47 ]
- ここC#じゃないよ
- 714 名前:デフォルトの名無しさん [2008/04/10(木) 12:20:50 ]
- static DWORD beforeTime = 0;
DWORD nowTime;static int fps = 0;char buff[80]; nowTime = timeGetTime();fps++; if ( nowTime - beforeTime >= 1000 ) {wsprintf(buff, "%05d FPS\n", fps); TextOut(hDC,1,1,buff,lstrlen(buff));fps = 0; beforeTime = nowTime; } counter++; これは某所にあった FPSを表示するソースの一部なんだけど これを使うと(WM_TIMERで呼ぶと) 最初の一回は00001FPSと出て、その後は25000とか二万を越える値が出ます。 どうして?
- 715 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 12:31:49 ]
- 1秒に25000回呼ばれてるんだろ
- 716 名前:デフォルトの名無しさん [2008/04/10(木) 12:56:24 ]
- >713
あ、思いっきり間違えました! すいません。
- 717 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 05:19:00 ]
- リソースファイルは、Express Edition じゃビルドできないんですか?
ちなみにバージョンは2008です。
- 718 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 06:07:09 ]
- リソースコンパイラはRC.EXE
- 719 名前:705 [2008/04/11(金) 10:28:39 ]
- どなたかヒントだけでも教えていただけませんか?
- 720 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 11:27:20 ]
- >>705
文字を替えたいコントロールのIDをIDC_STATICから別の名前に替えてみて
- 721 名前:デフォルトの名無しさん [2008/04/11(金) 12:07:17 ]
- >>720
変更しましたところ、グループボックスの文字が変化しました。 グループボックスのIDもIDC_STATICになっていました。 その原因は GetDlgItem(IDC_STATIC)->SetFont(&font); でIDを変更していなかったので、 ここでGetするIDも変更したのですが、文字は変化しませんでした。 原因はこれですか??
- 722 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 12:40:58 ]
- >>721
IDC_STATICってのは (-1) になってて ID未設定でいいときに使うんだよ。 プログラム中で指定するなら自分でIDつけろ
- 723 名前:デフォルトの名無しさん [2008/04/11(金) 13:36:40 ]
- >>722
ありがとうございます。 しかし、変更しましたが文字は変化しません。。。
- 724 名前:デフォルトの名無しさん [2008/04/11(金) 13:43:12 ]
- すいません。文字変更できました!
なぜかスタティックテキストの上に全く同じスタティックテキストができていて、 上を必死に変更してたのですが、下のものが表示されてたためにいくらやっても変化しなかったようです。 コピーやペーストをした覚えはないんですが、、、 でも、おかげさまでIDのことを覚えることができました。ありがとうございました。 もっと勉強してきます!!
- 725 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 21:00:41 ]
- しかしこのスレって土日になるととたんに書き込みなくなるよね
仕事でこんなところに書き込んでる奴ばかりなんだろうか
- 726 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 03:40:49 ]
- 仕事でか(((( ;゚Д゚))))
- 727 名前:デフォルトの名無しさん [2008/04/13(日) 09:24:12 ]
- VC++2008ExpressでReleaseでビルドしてもtest.exeファイルが作成されません
Releaseフォルダにはtest.exe.intermediate.manifestやtest.objがあるだけです どうすればいいですか?
- 728 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 09:52:27 ]
- >>727
あるじゃん
- 729 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 10:16:14 ]
- Releaseフォルダは2箇所にある。
- 730 名前:デフォルトの名無しさん [2008/04/13(日) 10:35:39 ]
- >>727
ほんとだ
- 731 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 12:13:21 ]
- >>727
リンクエラー出てませんか?
- 732 名前:デフォルトの名無しさん [2008/04/15(火) 18:04:24 ]
- 設定に関する質問です。
以前VisualC#2005をつかっていた時は、 括弧を閉じたりセミコロンを入れると自動でコードが綺麗に整列されて、例えば x=5 が x = 5 というように、空白が挿入されたりインデントされたりしてたのですが、 こういった機能はVisualC++2008にはありますか? 自分でも調べたのですがよくわかりませんでした。設定方法がありましたらお願いします。 上手く説明できなくてすみません。。orz
- 733 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 19:18:10 ]
- >>732
C++に、そういう機能はなかったはず C#なら2008にもある
- 734 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 20:07:24 ]
- そうですか。。回答ありがとうございました
- 735 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 20:50:01 ]
- C#はそんなのがあるんだ。
C++は他の言語や環境と比べると不便さを感じるかもね。
- 736 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 21:11:22 ]
- 昔からVBがそうだけど、特にVCが不便と感じたことはない
逆にいちいち余計なことされるとむかつく
- 737 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 22:37:16 ]
- VBは改行時にいちいち構文チェックしてうざかったな〜
.netになってからVBとかC#とかのインテリセンスはかなり優秀に C#になれてたんでVC++にきたときに不便さに困った 今となっては慣れたけど
- 738 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 03:22:50 ]
- C++ はマクロとかあるし、それ抜きにしても文法凶悪だからね。処理系的には。
賢くしづらいのはよく分かる。
- 739 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 03:29:29 ]
- VCで極力小さい実行ファイルを作るにはどうしたら良いのでしょうか。
#include <windows.h> int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) { return 0; } だけをコンパイルしても24KBにもなってしまい、ビルドオプションで サイズ優先とかしても変化せず。 変なランタイム使ったり実行ファイルが圧縮されてるわけでも無いのに、 ファイルサイズ10KB台で色々な処理をしてるまともなGUIツールが あるんですが、何をどうしたらこう言う実行ファイルが作れるのか 皆目見当が付きません。
- 740 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 05:43:44 ]
- 既存のライブラリを使わない
- 741 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 06:57:12 ]
- あとは/opt:nowin98だっけか。
- 742 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 09:55:28 ]
- どなたか
www.whitire.com/vbs/tips0199.html をvc++に移植してください!
- 743 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:43:12 ]
- 移植もなにも…
- 744 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 11:16:47 ]
- できあがったDLLからC++のdllexport関数をDEFファイル形式で吐くツールとかないかな・・・
- 745 名前:742 mailto:sage [2008/04/16(水) 11:40:27 ]
- こんな感じで呼べますか?
www.geocities.co.jp/SiliconValley-SanJose/5309/vbaxdll_smp.html
- 746 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 14:58:36 ]
- >>740-741
きっちり1KBの実行ファイルが生成される様になりました。 有り難うございました。
- 747 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 00:53:24 ]
- ファイルから読み込んだ文字列から数字を取り出す方法を教えてくれないか
[100,100] こんな感じの文字列なんだが "[%d,%d]" こんな書式を使って文字列から数字とか文字列とか取り出せるCの関数ってなんだっけ? もし、C++だったら別のいいやり方があったらそっちを教えてくれたら嬉しい。
- 748 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 00:58:11 ]
- 自己解決、sscanfだ!
- 749 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 03:33:25 ]
- スクリプト処理させるなら","やらスペースやら"[" "]"やらでトークン識別して
個々の文字列をatoiとかで読み取らせる方がいいよ
- 750 名前:デフォルトの名無しさん [2008/04/17(木) 08:14:17 ]
- sscanf()で%[]や%nを駆使する方がましな希ガス。
- 751 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 08:38:20 ]
- sscanfは黒歴史だよ
- 752 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 08:48:49 ]
- Cスレ行け
- 753 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 14:51:45 ]
- >>750
入力ミスのチェックとか考えると自前で文字列解析処理作った方がいい 仕事でスクリプターが別にいる場合とかはチェック必須だしな
- 754 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 13:51:12 ]
- あるクラス(以下CTest)をdllにして別のプロジェクトでリンクして
使ったときに、デバッグモードの時だけエラーが出ます。 ソースはこれだけなんですが・・・ 1: CTest *ptest = new CTest; 2: delete ptest; 2行目実行時に「Invalid Address specified to RtlFreeHeap」 が出力されてブレークします。ヒープ領域の開放が上手くできて いないような感じかと思ったのですが、具体的にどうしたら 良いのか分からないです。よろしくお願いします。
- 755 名前:デフォルトの名無しさん [2008/04/18(金) 14:04:11 ]
- CTestの中身がなんか悪さしているんじゃない?
- 756 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 14:36:49 ]
- 実際のheapいじるメモリ確保がdllと本体側でまたいでんじゃないの?
- 757 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:27:40 ]
- new CTest;
|

|