No.2ベストアンサー
- 回答日時:
>#define EXPORTS __declspec(dllexport)
>でEXPORTS BOOL fnchoge(void)という形でしたが
まず、_stdcallがないですね。_stdcallがないと、落ちるだけだと思うので、エラーとは関係ないですけど。
エラーの原因として考えられるのは、
__declspec(dllexport)を使うと、関数名が引数のバイト数で修飾されて、VBで呼び出すときの関数名が変わってしまうときがあるためだと思われます。
なお、実際にどんな名前でEXPORTされているかはDUMPBINや
Dependency Walker(どちらもVC++に付属)で調べることができます。
>DLLMainですがVBから呼び出した場合も
>エントリポイントとして意味があるのでしょうか?
DLLにおけるエントリポイントは、最初にVBからDLLがロードされたときに、一番最初にコールされる関数です。
普通のCのプログラムで考えると、LoadLiblary()で呼び出されたのと同じ状態です。
で、DllMain()は不要であれば作成する必要はありません。
個人的には、インスタンスハンドルを保存するのに作るときのほうが多いですが。
No.1
- 回答日時:
>_stdcallで記述されたものではなく
>DllMainで記述されたものなのですが、
_stdcallとDllMain、まったく関係ないのですが・・・
両者の意味わかってますか?
_stdcallは、呼び出し規約(パラメータのスタックへのつみ方)で、
DllMain()はエントリポイントの関数名です。
CのDLLの関数をVBから呼べるようにするためには
1._stdcallで宣言する
2.__declspec(dllexport)をつけるか、DEFファイルを使用して関数をexportする
必要があります。
つまり、1、2の両方が満たされない関数はVBから呼ぶ方法はありません。
DEFファイルで定義しstdcallする事で解決しました。
ありがとうございました。
元々は
#define EXPORTS __declspec(dllexport)
でEXPORTS BOOL fnchoge(void)という形でしたが
これだとVBからdeclare fanctionで呼び出す事ができなかったのですが
どういった原因があるのでしょうか。
またご指摘の通りDLLMainについてよくわかっていません。
DLLMainですがVBから呼び出した場合も
エントリポイントとして意味があるのでしょうか?
今まではDLL作成の際、
DLLMainを作らずDLLを作成してたいのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンパイル時のエラーについて...
-
ftp_getできない?
-
ノートパソコンのエラー画面に...
-
ファイルopenエラーになってし...
-
local by flywheelについて
-
Wordpressのfeedwordpressとい...
-
WordでURLをクリックしてそのペ...
-
Music Center for PCの楽曲をiT...
-
サーバーに転送したファイルが0...
-
ギガファイル便って女の人のエ...
-
ホームページビルダーで作成し...
-
[ブロック解除]の方法が知りた...
-
【緊急】JWWのファイルを開きた...
-
録音アプリのPCM録音で4時間録...
-
シャープの携帯SH505isで撮影し...
-
Mac OS Xについて
-
このインターネットマークを元...
-
CSVファイルの内容がブラウザ表...
-
TSファイルをスムーズに再生したい
-
HPビルダーで作ったWEBページ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンパイル時のエラーについて...
-
急にXMLパースエラーが表示され...
-
ホームページビルダーの【×】マ...
-
ファイルopenエラーになってし...
-
VB6 使用中ファイルの確認
-
thunderbardでエラーが出ます。
-
ワードがなかなか閉じないです
-
Excelのハイパーリンクがエラー...
-
local by flywheelについて
-
ASP.NET サーバーでClassのコー...
-
EXCEL このブックには更新でき...
-
エクセルVBA インデックスが有...
-
ftp_getできない?
-
韓国に送った添付ファイルexcel...
-
VBSでごみ箱に捨てたファイルの...
-
VBAを記述したEXCELファイルを...
-
2GSDメモリカードに書き込...
-
VCで作成したDLLの使用
-
属性の値に特殊文字が大量にあ...
-
WinMx使用中に・・・「ファイル...
おすすめ情報