OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

関数から関数を呼ぶ

  • すぐに回答を!
  • 質問No.239526
  • 閲覧数216
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 76% (1582/2056)

VC++でDLLを作成しています。
超初心者です。

関数から関数を呼ぼうとしたら、
>関数ポインタとして評価されない式を使って、関数を呼び出そうとしました。
というエラーがでました。
どういうことでしょうか?
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル7

ベストアンサー率 18% (3/16)

エラーの内容を書くよりどのようなプログラムでひっかかっているのかを書いた方が分かりやすいかと思います。 考えられるものとしては、関数の引数の型は合っていますか? また、返り値の型は合っていますか? プロトタイプ宣言と比較してみてください。 *型やアドレスわたしなど間違えやすいと思うのでチェックしてみてください。 もちろんデリミタ-や{}は大丈夫ですよね。 もしどうしても分からないようならプログ ...続きを読む
エラーの内容を書くよりどのようなプログラムでひっかかっているのかを書いた方が分かりやすいかと思います。
考えられるものとしては、関数の引数の型は合っていますか?
また、返り値の型は合っていますか?
プロトタイプ宣言と比較してみてください。
*型やアドレスわたしなど間違えやすいと思うのでチェックしてみてください。
もちろんデリミタ-や{}は大丈夫ですよね。
もしどうしても分からないようならプログラムを省略して書いてみてはいかがでしょうか。
補足コメント
wan-chan

お礼率 76% (1582/2056)

アドバイスありがとうございます。

呼び出し側

extern "C" __declspec(dllexport) char __stdcall AddDateA(char * date,int dd)
{
int i_end;
i_end = GetEndDate(date);
}

呼ばれる関数
extern "C" __declspec(dllexport) int __stdcall GetEndDateA(char * date)
{

}

です。
投稿日時 - 2002-03-22 15:22:05


  • 回答No.2
レベル12

ベストアンサー率 41% (324/772)

まず、LoadLibrary("000.DLL");を行いDLLをロードします。 その後GetProcAddress("GetEndDate");でGetEndDate()のアドレスを求めないと、GetEndDate()では呼び出せません。 まずは、基本から。 呼び出し側のAddDateA()は__declspec(dllexport)は不要です。 ...続きを読む
まず、LoadLibrary("000.DLL");を行いDLLをロードします。
その後GetProcAddress("GetEndDate");でGetEndDate()のアドレスを求めないと、GetEndDate()では呼び出せません。
まずは、基本から。

呼び出し側のAddDateA()は__declspec(dllexport)は不要です。
補足コメント
wan-chan

お礼率 76% (1582/2056)

うーん。
ごめんなさい。
意味がわかりません。

defファイルで、
関数名を列記するだけではダメなのでしょうか?

今度は、「GetEndDateAは定義されていない識別子、というエラーが出てしまいました。

また、VBからこの関数も使うのですが、
それでも、__declspec(dellexport)は不要ですか?
そもそも、これはなんのため・・・。

かなり初歩的なことで申し訳ないです…
投稿日時 - 2002-03-25 10:20:35
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ