- ベストアンサー
defファイルの序数って何でしょう?
現在、VC++でDLLを作成し、そのDLLを使ってVBから関数を呼び出しているのですが、DLL開発についてわからないことがあります。 色々調べた結果、DLL作成時にdefファイルが必要である。 ということまではわかっているのですが、 defファイルの記述として行う「序数」がいまいちわかりません。 調べたものによると 「DLLのファイルサイズが小さくなる」 「新しく関数を追加するときは大きな数値を与える」 などが書かれてありました。 いったい序数は何のために(どんなときに)使うものなのでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
関連するQ&A
- VC++6.0で作成したDLLのクラスをVB6.0でインポートするには?
VC++6.0で作成したDLLのクラスをVB6.0でインポートするにはどうしたらいいのでしょうか? 通常の関数なら__declspec(dllexport) __stdcall を書き,defファイルにEXPORT指定することで解決できたのですが,クラスごとエクスポートする場合にはVC側,VB側の記述をどのようにすれば良いのでしょうか?
- 締切済み
- C・C++・C#
- VB6.0を使用しています
VB6.0を使用しています VC6.0でdefファイルで宣言してDLLを作成し VBのEXEよりDLLをCALLしています。 VBではDLLの関数をDeclareで宣言しています。 問題なのは ちょっと前まで問題なく動いたDLLですが 新規にDLL関数を追加したら EXEではちゃんと呼び出して処理を行なってくれておりますが VBのデバッグ起動で呼び出すと、その新規のDLLの関数がありませんと メッセージを通知して止まってしまいます、 EXEでは動くのにデバッグ起動ではだめなんでしょうか??不思議です もし、ご存知の方がいらっしゃいましたら教えてください。
- ベストアンサー
- Visual Basic
- VCで作成したDLLの使用
VCで作成したDLLの使用 VC6.0で作成されたDLLファイルを使いたいのですが _stdcallで記述されたものではなく DllMainで記述されたものなのですが、 VBから呼び出す事は可能でしょうか? 普通にdeclare functionで呼び出そうとすると、 「エントリfnchogeがDLLファイル hoge.dll内に関数が見つかりません。」 とエラーがでるだけでした。 VB6.0SP3 Windows2000
- ベストアンサー
- Visual Basic
- Visual Basic6.0で作ったデータをVisual C 6.0を用いて通信したい(DLLファイルを作成)
Visual C 6.0 Visual Basic 6.0 WindowsXP 掲題の件ですが、 VBで作成したデータをVCで通信したいと思い、 値を受け渡すにはDLLファイルを作って関数の戻り値にすれば良いと調べて分かり、 作成方法を知りたく質問させていただきました。 まず、 ・どちらのプログラムでDLLファイルを作成したらいいか ・どのようにコードを記述して作成したら良いか(VB,VC) VCで一度作成しようと思い、サンプルコードを調べ、ビルドしたところ 「デバック・・・実行可能ファイル・・・」 と表示されファイルを選ばなければいけない画面になりました。 これはどれを選択すれば良いのでしょうか。 よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- DLL作成時、defファイルを使いたくない
また質問させて下さい。 Visual Studio2005でDLLを使ったプログラムを作ろうとしています。 defファイルを利用すると、そのDLLファイルを作成できるのですが、 __declspec(dllexport)を利用すると、DLLファイルのその関数を読めなくなってしまいます。 なぜでしょうか? 下記は、MFCで、dll_test7というプロジェクトを作り、そのdll_test7.hのコードのすぐ下に その関数を書きました。(これがダメだと思うのですが…) //●Visual Studioのプロジェクト作成で、生成される部分 // dll_test7.h : dll_test7.DLL のメイン ヘッダー ファイル // #pragma once __declspec(dllexport) void __cdecl test0(void); #ifndef __AFXWIN_H__ #error "PCH に対してこのファイルをインクルードする前に 'stdafx.h' をインクルードしてください" #endif #include "resource.h" // メイン シンボル // Cdll_test7App // このクラスの実装に関しては dll_test7.cpp を参照してください。 // class Cdll_test7App : public CWinApp { public: Cdll_test7App(); // オーバーライド public: virtual BOOL InitInstance(); DECLARE_MESSAGE_MAP() }; //■作成した関数 __declspec(dllexport) void __cdecl test0(void) { CString cs; cs="aa"; ::AfxMessageBox(cs); } 上記は、defファイルを利用するとこの関数を呼び出せます。 以上、どうぞよろしくお願い致します。
- ベストアンサー
- C・C++・C#
- VB6からVC6で作成したDLLの関数を呼び出すときに注意すること
VB6からVC6で作成したDLLの関数を呼び出すときに、型について気をつけないといけませんが、VB6でint型のものはVC6ではshortにしないといけないのでしょうか?マシンやOSや開発環境(例えばVS2005やGCC)により違ってくるのでしょうか? VB6とVC6でやり取りする場合の型について知りたいです。 あと、ActiveXのDLLの場合は関数にアクセスするのではなく、COM(という概念がわかっていないのですが)を使うのですか?
- ベストアンサー
- Visual Basic
- DLLでメンバ関数をエクスポートする方法
VC++2005でDLLを作成しています。 そこで、クラスのメンバ関数をエクスポートする必要が出てきました。 クラスのメンバ関数を __declspec(dllexport) を使用せず、 DEFファイルを使用してエクスポートするには、 どのようにしたらよろしいでしょうか。
- ベストアンサー
- C・C++・C#
- 序数163がダイナミックライブラリiertutil.dllから見つかりません
IEやQuick Time、Mcafeeなど色んなソフトをDLしてみましたが、開けません。 「序数650がダイナミックライブラリiertutil.dllから見つかりませんでした」と表示されます。 ソフトを実行するときに必要な序数なのでしょうか。 「序数650 iertutil.dll」でネット検索してみましたが、日本語の検索結果ゼロ。中国語はやたら出てきます。 以前、Cドライブの空き容量を増やしたくて色々消したので、そのときに何か消してしまったのかもしれません。 どうしたら良いでしょうか。ご存知の方教えて下さい。
- ベストアンサー
- ネットトラブル
- VB6から参照可能なDLLの作成
VB6から参照可能なDLLの作成を参考書をみながらしましたが、上手くいかない為質問させていただきます。 開発環境VC++ 2005 C++ CTEST.dll #include <windows.h> __declspec (dllexport) int __stdcall test(int i) { i = i + 5; return i; } .defファイル LIBRARY "test" DESCRIPTION EXPORTS A 以上でDLLを作成し、VB6側で Private Declare test Lib "CTEST.dll" (ByVal i as integer) で宣言しても「エラー53 ファイルがみつかりません」と表示されます。「参照の追加」から参照しようとしても「このファイルは参照できません。」をエラーがでてしまいます。 直すべき点はどの部分なのでしょうか? ご教示ねがいます。
- ベストアンサー
- C・C++・C#
- VCやVBで作成したDLLがどのEXEから起動されているか知りたい。
VBやVCで作成したDLLがそれぞれあります。 それぞれは複数のEXEから起動されます。 DLLの中でどのEXEから起動されたか知りたいんですが なにか方法はありませんか? 起動している関数などにパラメータを追加できない事情がありまして・・・ よろしくお願いします。
- ベストアンサー
- C・C++・C#
お礼
ありがとうございます。参考になりました。