[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/01 14:35 / Filesize : 252 KB / Number-of Response : 999
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★初心者にVisual C++を教えるスレ★ Part28



1 名前:誰も立てないから・・ [2007/11/30(金) 22:40:42 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html
myu.daa.jp/osiete/

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5

543 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 15:22:18 ]
>>539
[ファイル]-[新規作成]-[プロジェクト]
[Visual C++]-[全般]
空のプロジェクト

でコンソールアプリを作成してるけど

[プロジェクト]-[xxx のプロパティ]
[構成プロパティ]-[C/C++]-[全般]
追加のインクルードディレクトリ

が見えてる

544 名前:539 [2008/01/12(土) 16:44:51 ]
>>543
資料を見ながら作っていたのですがその手順の通りだと
あたかも最初から表示されているようにかかれてましたがソースファイルが1つも無いプロジェクトには
どうやらC/C++の項目が表示されないようになっているようです。
1つ適当にファイルを追加した後表示される事が確認できました。
有り難うございました。

545 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:16:06 ]
ググって分からないから書いてんだろ?
キーワードもうまく見つけられないんだろうな

546 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:41:49 ]
beginthreadで開始したスレッドが終わらないうちにプログラム本体をPostQuitMessageで終了すると、
デバッグ時の出力ウィンドウに
cppwin.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a5fd54 を読み込み中にアクセス違反が発生しました。
cppwin.exe の 0x77d0f450 で初回の例外が発生しました: 0xC0000005: 場所 0x25a5fd54 を読み込み中にアクセス違反が発生しました。
と表れるんですが、どうすればアクセス違反が起こらないように終了できるんでしょうか。

547 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 04:42:22 ]
>>546
子供に自殺要求を出して、その死水を取ってから自殺してください。

548 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:42:18 ]
VC++ 2005 でisNaNを使った関数を使用するためには
ソースコード中に
using namespace System

と書けばいいのでしょうか?

549 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:49:31 ]
>>548
isnan()でよければそんなことを書く必要はありませんが。

550 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:59:32 ]
>549
どうもありがとうございます

デバッグかけるとソースコード中の

track_box.angle = !isnan(theta) ? (float) -theta : 0;

のところで、

error C3861: 'isnan': 識別子が見つかりませんでした
と表示されてしまいます…コードがいけないのでしょうか?

551 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:03:41 ]
_isnan()



552 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:10:46 ]
>551
うまくいきました!ありがとうございました

553 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:13:21 ]
デバッグ?って実行しようとしてその前のコンパイルでのエラーか・・・

554 名前:デフォルトの名無しさん [2008/01/14(月) 22:31:41 ]
_inran()

555 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 09:00:58 ]
>>546
メモリ破壊を修正

556 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:33:58 ]
Visual C++ 2005でdirectx9.0でプログラミングしています。
プログラムは動くのですが、終了時に
スレッド 'Win32 スレッド' (0x654) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x98) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x424) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x2e0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x65c) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4c0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4d8) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4b0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4a0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x23c) はコード 0 (0x0) で終了しました。
と大量に同じようなメッセージが出力されます。
これは異常なのでしょうか?


557 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:35:54 ]
異常です

558 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:37:46 ]
ウイルス

559 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:47:09 ]
大量に出るのは異常だという根拠があるのなら異常です。

560 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:56:08 ]
>>556
スレッドを作った覚えはあるかどうか。
心当たりが無ければ、実行中に中断させて、デバッグ-ウインドウ−スレッドでスレッドの一覧が出るので、何のスレッドか調べてみよう。

561 名前:556 mailto:sage [2008/01/16(水) 21:57:04 ]
どうやら音関係の初期化で出てるみたいなんですけど、
//パフォーマンスの作成
CoCreateInstance(CLSID_DirectMusicPerformance, NULL,
CLSCTX_INPROC, IID_IDirectMusicPerformance8,
(void**)&g_pPerformance );
とするとエラーが大量に出てしまうようです。
おかしな所あるでしょうか?指摘お願いします。



562 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:58:41 ]
感染してるとそうなる

563 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 00:33:52 ]
悪いことは言わない、DirectMusicには手を出さない方がいい
超えられない壁がある

564 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 12:19:17 ]
(BBSを使うのは)難しい

565 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:39:11 ]
XP(SP2) VC++6.0 MFC ダイアログベースです。
画像をランダムに表示させたいのですが、どうすればいいでしょうか?

566 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 14:56:33 ]
rand()に時間でもかけて使えばいいと思います

567 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:01:23 ]
ランダムじゃないところまではできてるのなら、それを晒してみ。

568 名前:565 mailto:sage [2008/01/18(金) 21:42:25 ]
randで自己解決しました。
表示させる枚数も少ないので…。

ご迷惑をおかけしました。

569 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 21:44:47 ]
自己解決

570 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:29:09 ]
向きを持ったキャラクタを回転させたいんですけど、
3D空間での単位ベクトルの回転ってどうしたらいいですか?
回転といったら行列を掛ければいいとおもったんですけど、ベクトルは3元なので
どうしたらよいかわかりません。

571 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:36:20 ]
ゲーム製作板にでも行け



572 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:50:34 ]
>>568
どこが自己解決だよカス

573 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:53:03 ]
>>570
・単位マトリクスを用意
・用意したマトリクスの平行移動成分にベクトル値を入れる
・回転マトリクスと乗算する

574 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:59:59 ]
>>573
やってみたら出来ました。
ありがとうございます。
しかし、z軸の+の方からみた時は上手く動くのですが、
逆を向いた時に上下が反対になってしまいます。
D3DXMatrixRotationYawPitchRoll(&m_mat,
D3DXToRadian(yaw),
D3DXToRadian(pitch),
D3DXToRadian(roll) );
として回転行列作っているんですが、pitchの回転が上手くいきません。


575 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 03:51:03 ]
調子に乗るなよカス
ここはVCのスレだ

576 名前:デフォルトの名無しさん [2008/01/19(土) 11:55:55 ]
strcpyとか使うと出る例のwarningが、
#define _CRT_SECURE_NO_DEPRECATE 1
ってやっても出たまんまなんですけど、
なぜだか分かりますか?
(#pragma warning(disable:4996)は効きます)


577 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:05:54 ]
ヘッダのインクルードより先に書いている?

578 名前:デフォルトの名無しさん [2008/01/19(土) 12:13:16 ]
>>577
ありがとうございました。
解決しました。
自作のヘッダーの方では、ライブラリのinclude前に
あったのですが、mainの方ではそのヘッダーをライブラリよりも
あとから呼んでました。

もしかして、
このdefineはmainのあるcppの頭にだけ
書けばよいものなのでしょうか?


579 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 13:30:28 ]
ふつうは、コンパイルオプションに仕込むけど

580 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:23:17 ]
Visual C++ってフォームデザイナ付いてんの?

581 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:56:38 ]
>>580
[ファイル]-[追加]-[新しいプロジェクト]
[Visual C++]-[CLR]
Windows フォーム アプリケーション
でプロジェクトを作成すると使えるみたい



582 名前:デフォルトの名無しさん [2008/01/19(土) 15:00:17 ]
C++ とうか C++/CLI だけどね.

583 名前:デフォルトの名無しさん [2008/01/19(土) 18:30:45 ]
クラスの中で+演算子(などを)定義した際、一時的に、
newで何かを作ったとします。
(こんな感じ?)
type* tmp = new type[num];。
で、その何かは(何らかの処理後)
その演算子定義のreturnで使いたいとします。
return CLASS_X(tmp_s);
このとき、tmpのdeleteはいったい
どこで行ったらよいのでしょうか?
(deleteなしで作成後、実行しても動いてはいる?
のですが、たまたまのような気がして心配なので)

584 名前:デフォルトの名無しさん [2008/01/19(土) 18:32:07 ]
訂正
誤:return CLASS_X(tmp_s); 
正:return CLASS_X(tmp); 


585 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:44:40 ]
>>583
tmpの型をboost::scoped_array<type>にでもすればいい。

586 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:59:11 ]
>>583
CLASS_X()の戻り値を変数に保持してからtmpを解放
で、returnで保持した変数を返せばいい

587 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:00:19 ]
ちなみに>>583でも動くだろうが、呼び出す毎にどんどん空きメモリが減っていく

588 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:02:32 ]
>>580
スタンダード以上ならついてる

589 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:12:29 ]
フォームでよければexpressにもついてる

590 名前:デフォルトの名無しさん [2008/01/19(土) 19:31:40 ]
>>585
できればboost以外でお願いしたいのですが。


591 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:34:09 ]
>>583
operator=()の中でnewする必要がある状態ってのがよく分からない。
自動変数の値返しじゃダメなのか?
ソース提示可能なら提示よろ。

deleteしなかった場合は587の言うように当然メモリリークしていくぞ



592 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:46:23 ]
標準C++の話なら他所でやれ

593 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:47:08 ]
>>590
std::vector<type>
&tmp[0]のようにすれば、先頭要素へのポインタも得られる。

594 名前:583 [2008/01/19(土) 19:48:07 ]
>>591

ありがとうございます。
簡単に言えば文字列の足し算なんですけど、
newしないでできるのでしょうか。
(当方初心者です)

friend Mojiretsu operator+=(const Mojiretsu& moji1, const Mojiretsu& moji2) {    // +演算子
  int tmp_nagasa = moji1.nagasa + moji2.nagasa ;
  char* tmp_moji = new char[tmp_nagasa+1];
  mojicpy(tmp_moji,moji1.s);
  mojicat(tmp_moji,moji2.s);

  return Mojiretsu(tmp_moji);
}


595 名前:583 [2008/01/19(土) 19:51:06 ]
>>586

ありがとうございます。(前後してすいません)
こんな感じでしょうか。

friend Mojiretsu operator+=(const Mojiretsu& moji1, const Mojiretsu& moji2) {    // +演算子
  int tmp_nagasa = moji1.nagasa + moji2.nagasa ;
  char* tmp_moji = new char[tmp_nagasa+1];
  mojicpy(tmp_moji,moji1.s);
  mojicat(tmp_moji,moji2.s);
  char* tmp2_moji = tmp_moji;
  delete tmp_moji;

  return Mojiretsu(tmp2_moji);
}

一応、動きましたが、tmp2_mojiの先が解放されちゃってて
これも心配なんですが、大丈夫なのでしょうか。


596 名前:583 [2008/01/19(土) 19:54:04 ]
訂正
正:mojicpy、mojicat
誤:strcpy、strcat

597 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:55:17 ]
最近マジデ、どのプログラムもつまんないんですが、どうしたらいいですか?
責めて、C++で鬱病から逃れたいんですが

598 名前:583 [2008/01/19(土) 19:59:39 ]
>>592
すいません、この質問が終わったらよそに行きます。
見逃してください。

599 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:59:44 ]
ここC++スレじゃないってば
VCスレ

600 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:00:57 ]
>598
見苦しいから汚いコード貼らないでくれる?

601 名前:591 mailto:sage [2008/01/19(土) 20:05:37 ]
正直すまんかった。

>>598
C++相談室 part60
pc11.2ch.net/test/read.cgi/tech/1200044614

あたりで同じ質問してくれ。



602 名前:583 [2008/01/19(土) 20:08:15 ]
>>601
すいませんです。
そちらに行きます。

お邪魔いたしました。

603 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:30:05 ]
最近は、プログラムってFPGAとかのハードプログラムが面白い罠

604 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:23:32 ]
3週間完全マスターVisual C++ 6.0 1版1刷(日経BP社)を図書館で借りたのですが、、、
どっかに、正誤表とかはないんですか?

605 名前:デフォルトの名無しさん [2008/01/20(日) 01:25:08 ]
>>603
PCに標準で乗ってたら面白いけどな.

606 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 09:45:08 ]
>>604
ここで聞いてどうするw
出版社に聞け

607 名前:デフォルトの名無しさん [2008/01/20(日) 12:10:01 ]
デバイスコンテキストを使用しててどうも前に進めません。
新しくトップにウィンドウ(タイトルバー無し)をポップアップして、
そこにテキストを表示するというものなのですが、
一定以上の大きさを制限するために、一旦デバイスコンテキストに描画したものをStretchしたいのですが、
それ以前にCreateCompatibleDCでメモリデバイスコンテキストにDrawTextしてから
BitBltでウィンドウにそのままSRCCOPYしても真っ白なままです。
hDC = GetDC(hWnd);
hMemDC = CreateCompatibleDC(hDC);
GetClientRect(hWnd);
DrawText(hMemDC, szText, -1, &rec, DT_WORDBREAK);
BitBlt(hMemDC, 0, 0, rec.right, rec.bottom, hDC, 0, 0, SRCCOPY);
のような感じで、取り敢えずウィンドウの大きさそのままに描画してもダメでした。
これが DrawText(hDC, szText, -1, &rec, DT_WORDBREAK); に置き換えると、ちゃんと描画されます。
プロポーショナルフォントを使っているので、ウィンドウサイズに合わせてポイントを変えるとずれてしまうので、
設定したフォントのまま縮小出来れば、、と試行錯誤してますが、デバイスコンテキストの描画の時点で止まってしまってます。
助言どうかよろしくお願いします。

608 名前:607 [2008/01/20(日) 12:12:20 ]
すいません、一行書き間違えしました。
>BitBlt(hMemDC, 0, 0, rec.right, rec.bottom, hDC, 0, 0, SRCCOPY);
→BitBlt(hDC, 0, 0, rec.right, rec.bottom, hMemDC, 0, 0, SRCCOPY);

609 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 12:29:26 ]
CreateCompatibleDCでググれ。
メモリDCはビットマップを割り当てないとまともに使えない。

610 名前:デフォルトの名無しさん [2008/01/20(日) 16:37:28 ]
2008/01/20 現在での最新のVisualC++ のバージョンは何でしょうか?

611 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:40:49 ]
マイクロソフトの公式でも池よカス



612 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:47:11 ]
>>611
いっぺあってどれがどれやらワケワカメなんだよボケェ
体系的に整理されていないと頭にインプットされねーんだよウンコ

613 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:52:28 ]
2008じゃないの?

614 名前:デフォルトの名無しさん [2008/01/20(日) 17:00:35 ]
まずなにしたらいいですか

615 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:09:27 ]
>>614
オナ・・・というのは置いといて
Hello world を表示だな

616 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:10:33 ]
>>614
コーヒーを用意し
服を脱ぎ
コーヒーに塩を入れ
裸体のまま一気に飲む

617 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:16:28 ]
>>614
void main()
{
printf( "Hello world!!\n" );
}
これを動かしてみ?

できるかな?
できるかな?

618 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:25:46 ]
>>614
なんで手に入れたんだよ
ワレズか?
違法だからやめとけお勧めしないから違法なんだよ

619 名前:デフォルトの名無しさん [2008/01/20(日) 17:47:26 ]
>>609
更に調べてみたら、どうにか作りたい形に近づきました。
hBmp = CreateCompatibleBitmap(hMemDC, rec.right, rec.bottom);
SelectObject(hMemDC, hBmp);
のようにしてから、DrawText, StretchBltをhMemDCに出力したところ、反映されたのですが、
テキストの埋まってない余白部分が黒くなってしまいます。
HBITMAPやCreateCompatibleBitmapで調べてるのですが、どうも背景を白く塗りつぶす事が出来ず・・・。

SelectObject(hMemDC, hBmp);
に関してはメモリデバイスコンテキストとBITMAP領域をリンクした状態にするという感じでしょうか・・・?

620 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:40:28 ]
DrawTextやStretchBltは呼べるのに、何故FillRectを呼ばないのかと

621 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:47:16 ]
>>619
DrawText()とか使うなら、SetBkColor()やSetBkMode()を覚えましょう。



622 名前:デフォルトの名無しさん [2008/01/21(月) 00:46:43 ]
Cプログラマ必須テキスト!

mori.eco.to/

623 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:37:57 ]
Visual Studio 2005 でリビルド

========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========
リビルドがすべて正常に完了しました

デバッグする

ダイアログで
「プログラム×××.exeは開始できませんでした。」
と表示され、デバッグできません。

何のエラーメッセージも表示されないのですが
心当たりのある方いますか?

624 名前:619 mailto:sage [2008/01/21(月) 04:30:52 ]
>>620-621
レスどうもです。SetBkColorは書き忘れただけで、書いてました。が、ダメでした。
FillRectは完全に盲点でした。。存在すら知らなかったもので、試した所、上手く行きました。
本来はマスクかけたりとか色々やるべきなのかもしれませんが、
取り敢えずテキストを白背景に黒で表示という目的は達する事が出来、ありがとうございました。

625 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:23:25 ]
質問です。
タスクトレイのアイコンから最小化、元のサイズの処理をしているんですが、
最小化は
ShowWindow(hWnd,SW_MINIMIZE);
ShowWindow(hWnd,SW_HIDE);
で、出来るんですが、下のサイズの処理をした時に、ウィンドウがアクティブにならず、他のものに隠れて後ろに表示されてしまいます。
処理は
ShowWindow(hWnd,SW_RESTORE);
ShowWindow(hWnd,SW_SHOW);
と書いているんですが、これのどこがいけないんでしょうか?


626 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:26:15 ]
そのへん、いろいろあるんで似たような目的のAPIや引数をいろいろ試してみるといい。
まあ、SetForegroundWindowを併用するのが確実かなあ

627 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 10:48:47 ]
>>626
レスありがとうございます。
一応、SetForegroundWindowやSetWindowPosを使って最前面に表示する事が可能なのは確認しましたが、
普通のウィンドウとは動作が違っちゃうんですね。

上記のものだと、関数が発行された時は確かにアクティブなんですが、そのあと後ろのウィンドウを消したりすると、
自分のプログラムが最背面になってしまいます。

自分の作ったウィンドウをmy、その他のウィンドウA、Bとあるとすると、
アクティブ順位が1:A、2:Bの状態から1:my、2:A、3:Bになり、AやBを最小化すると、
1:A(B)、2:myになってしまいます。何故か分かりますか?

628 名前:デフォルトの名無しさん [2008/01/21(月) 11:05:56 ]
visual c++ 2008 express editionでgeocoderja.dll内の関数gcjDbLoadを使うプログラムを書いています。が、エラーが出てしまいます。
dllを扱うには動的リンクと静的リンクがあるというところまではわかり、とりあえず動的リンクで試そうとしているんですがどうにもわかりません。
かなり低脳なので申し訳ないのですが、解決法を教えてください。

[ソース]
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
typedef int(__cdecl* _gcjDbLoad)(char *, int);
HINSTANCE hDll = LoadLibrary("geocoderja.dll");
int func = (int)GetProcAddress(hDll, "gcjDbLoad");

char *path = "C:/Documents";
int loadLevel = 4;
int retCode = func( path, loadLevel

FreeLibrary(hDll);
return 0;
}


[エラー]
------ ビルド開始: プロジェクト: geocoderja, 構成: Debug Win32 ------
コンパイルしています...
geocoderja.cpp
c:\documents and settings\de\デスクトップ\geocoderja\geocoderja\geocoderja.cpp(16) : error C2064: 2 引数を取り込む関数には評価されません。
ビルドログは "file://c:\Documents and Settings\DE\デスクトップ\geocoderja\geocoderja\Debug\BuildLog.htm" に保存されました。
geocoderja - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

629 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:08:04 ]
引数はいろいろやったの?
SW_SHOWNORMAL とか

630 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:14:37 ]
SW_SHOWNORMALならRESTOREなんてやる必要ない

631 名前:628 [2008/01/21(月) 11:16:12 ]
>>629
早速レスありがとうございます。
SW_SHOWNORMAL??
動的リンクのサンプルを見ながらちょこちょこいじってきたんでよくわかりません。
すみません・・



632 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:20:43 ]
typedef int(__cdecl* _gcjDbLoad)(char *, int);
イミフメイ

633 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:21:57 ]
>>628
何を聞いてるの?
もともと間違いはあちこちあるけど、そのエラーは
>int retCode = func( path, loadLevel
この行が途中までしか書いてないから出るんだよ。

634 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:22:13 ]
>>631
ShowWindow()の引数だよ
それ一つあればSW_RESTOREもSW_SHOWもいらない

635 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:22:32 ]
>>628
geocoderのことは知らないが

> typedef int(__cdecl* _gcjDbLoad)(char *, int);
↑のように書いたのなら
>int func = (int)GetProcAddress(hDll, "gcjDbLoad");
の行は
_gcjDbLoad func = (_gcjDbLoad)GetProcAddress(hDll, "gcjDbLoad");
と書かないと意味無くないか?

>>631
629-630はその前の質問に対するものだろ。

636 名前:628 [2008/01/21(月) 11:28:52 ]
すみません訂正です。書き込みの際に消してしまったようです。

[ソース]
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
typedef int(__cdecl* _gcjDbLoad)(char *, int);
HINSTANCE hDll = LoadLibrary("geocoderja.dll");
int func = (int)GetProcAddress(hDll, "gcjDbLoad");

char *path = "C:/Documents";
int loadLevel = 4;
int retCode = func( path, loadLevel ); //エラーが出てる行

FreeLibrary(hDll);
return 0;
}

[エラー]
c:\documents and settings\de\デスクトップ\geocoderja\geocoderja\geocoderja.cpp(13) : error C2064: 2 引数を取り込む関数には評価されません。

>>632
その行が意味もわからず見よう見まねで書いたのでよくわからないんです・・

>>634
ShowWindow()は使ってないのですが、関連があるんですか?無知ですみません・・

637 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 11:31:49 ]
>>636
俺が悪かった
ShowWindowは君の質問とは一切関係ないw

638 名前:635 mailto:sage [2008/01/21(月) 11:33:36 ]
>>636
>int retCode = func( path, loadLevel ); //エラーが出てる行

エラーの出てるのはその行だろうけど
原因は635で書いたところにあると思うよ。
意味が分からないなら「関数ポインタ」について調べてみ。

639 名前:628 [2008/01/21(月) 11:42:21 ]
>>637
完全に勘違いしてました。すみません。

>>635
635さんの言うように
int func = (int)GetProcAddress(hDll, "gcjDbLoad");

_gcjDbLoad func = (_gcjDbLoad)GetProcAddress(hDll, "gcjDbLoad");
にするとうまくビルドできました!
関数gcjDbLoadも使えているようです。
ありがとうございます!

>>638
とりあえず動作するようにはなったみたいなのでいろいろと調べてみます。
ありがとうございます!

640 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 12:19:15 ]
SW_SHOWNORMALも試しました。
ShowWindow(hWnd,SW_SHOWNORMAL);
でも、>>627に書いた通りの動作になってしまいます^^;

ShowWindow(hWnd,SW_SHOWNORMAL);
SetForegroundWindow(hWnd);
でも同じです。

641 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 12:28:49 ]
うちじゃそうならないから、キミのとこの環境がおかしいのかもね



642 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 13:49:08 ]
何で出来ないんですかねぇ;
もうちょっと試行錯誤してみます。ありがとうございました。

643 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 17:45:19 ]
Windowでプロジェクト全検索してみれば?
どっかでアホな事やってるんだろう






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<252KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef