VS2005でwin32のdll作成を行っています。cの関数を作成して

extern "C" BOOL PASCAL EXPORT をつけ、コンパイルすると無効な修飾子と言われます。どうしてでしょうか。どのようになおせばよろしいでしょうか?

教えてください。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/05/23 19:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:wack1234 No.1

回答回数24ベストアンサー獲得回数3

ポイント35pt

C++は分からないのでお役に立てるか分かりませんが、少し探して見ました。

VB.NETでプロシージャのアドレスを取得する方法。

http://dobon.net/vb/bbs/log3-8/4379.html

ここでPASCAL EXPORTを使っている方がいるのでサポートはされていると思います。



Win32 APIやDLL関数を呼び出すには?

http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.ht...

ここの型の対応を見ると

BOOL (long)は bool (System.Boolean)になっていますが、前回のソースを見るとVB側をIntegerで定義してるけど問題ないの?



スタックのつみ方はこちらが参考になるかな?

関数の呼び出し形式

http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.ht...



関数呼び出しの内部を理解する(2)

http://konuma.txt-nifty.com/blog/2006/01/post_1fd3.html

id:ko8820 No.2

回答回数1221ベストアンサー獲得回数69

ポイント35pt

http://yamatyuunet.bne.jp/pc/win/sample/dll/index.htm

こんな感じに作ればよい

  • id:mai_mai_mail
    extern "C" BOOL PASCAL EXPORT をextern "C" BOOLとしたらコンパイルが通りました。また、DEFファイルを書いたらVBからアクセスできました。PASCAL EXPORTに問題があったようです。単にPASCAL EXPORTがサポートされてないのでしょうか?また、PASCALを指定しなかったときにはスタックへのつみ方はどうなるのでしょうか?また、VBでのスタックのつみ方はどのようなのでしょうか?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません