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

関数の呼び出し

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

お礼率 76% (1582/2056)

同じDLL内にある関数から関数を呼ぶにはどうしたら
良いのでしょうか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル8

ベストアンサー率 50% (2/4)

例えば、FuncA という関数の中で FuncB という関数をコールするならば
FuncA が書かれているより前に FuncB の型が宣言されてなければいけません。
今回修正したように順番を変えればエラーにはなりませんが、一般的には
関数の型宣言をします。
#いっぱい関数があって、いろいろな呼ばれ方して、関数を書く順番を
#考えなきゃいけないなんて、めんどくさいですよね。

例えば int型の関数だとしたら、以下のように書けばいいのです。

int FuncA();
int FuncB();

int FuncA()
{
 intRet = FuncB();
}

int FuncB()
{
 return(ret);
}


int FuncA();
int FuncB();
の2つの宣言はソースの上の方で記述したり、ヘッダに記述して
インクルードすればOKです。
規模が小さかったり、ローカル関数であればソースに書いてもいいですが、
規模が大きかったり、グローバル関数の場合はヘッダで管理するのが
一般的です。

で、本題の問題ですが、「期待する値が取得できません」というのが
この質問を読んでいる人には伝わらないと思います。
もう少し具体的に書くと、みんな回答しやすいと思います。
まあ今回の問題は、デバッグして、B()関数で return している値を
確認すれば原因はすぐに判明するでしょう。
がんばってください。
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル8

ベストアンサー率 51% (21/41)

>同じDLL内にある関数(A)から >関数(B)を呼ぶにはどうしたら >良いのでしょうか? DLLでも特殊なことはないと思う 通常に呼べないの? AもBも同一DLL内にあるのですか ...続きを読む
>同じDLL内にある関数(A)から
>関数(B)を呼ぶにはどうしたら
>良いのでしょうか?
DLLでも特殊なことはないと思う
通常に呼べないの?
AもBも同一DLL内にあるのですか
補足コメント
wan-chan

お礼率 76% (1582/2056)

はい、
AもBも同一DLL内にあります。
通常に呼べません。
例えば、AからBを呼ぶ場合

intRet = B()

と記述すると、Bは定義されていない識別子というエラーになってしまいます。
投稿日時 - 2002-03-27 14:28:21


  • 回答No.2
レベル8

ベストアンサー率 50% (2/4)

補足に書かれているのはコンパイル時のエラーですよね? 単に型宣言してないだけは??? 普通はサブルーチンコールと同じですから問題ないはずですが、 何か特殊なことをしていますか??? ...続きを読む
補足に書かれているのはコンパイル時のエラーですよね?
単に型宣言してないだけは???
普通はサブルーチンコールと同じですから問題ないはずですが、
何か特殊なことをしていますか???
補足コメント
wan-chan

お礼率 76% (1582/2056)

cpp内に関数を書く順番を変えました。

AからBを呼ぶ場合は、
Aの下にBの関数を書かなければならないんですね。(--;
ゴメンなさい。

呼び出すことはできました。
(コンパイルはとおりました)
が、上手く処理できてないみたいです。
期待する値が取得できません。
VBからBの関数を呼び出した場合には、
期待する値が返ってくるんですが…。
うーん…。
投稿日時 - 2002-03-27 16:01:07
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


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

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ