- PR -

VC++で作られたDLLをVC++.NETから呼び出し方

1
投稿者投稿内容
M
会議室デビュー日: 2005/12/06
投稿数: 5
投稿日時: 2005-12-06 18:33
VC++で作成されたDLLをVC++.NETから
呼び出すにはどうしたらよいでしょうか。
初歩的な質問ですいません。
初めてなもので。
ご存知の方がいらっしゃれば宜しく
お願いします。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-12-06 19:11
こんにちは。

引用:

Mさんの書き込み (2005-12-06 18:33) より:
VC++で作成されたDLLをVC++.NETから
呼び出すにはどうしたらよいでしょうか。



「VC++」と「VC++.NET」というのは、なにか区別されているのか分かりませんが…

VC++で作成できるDLLにはいろいろ種類があります。

・ノーマルなWin32 DLL(Cの関数をエクスポートしたもの)
・拡張 DLL(Cの関数以外にも、変数やC++クラスをエクスポートしたもの)
・ActiveX DLL(COMのインプロセスサーバー)
・マネージコードのDLL(VC++6以前では作成不可能)

だいたい上記のうちのどれかだと思いますが、
DLLの種類によって、呼び出し方も異なってきますので
もう少し情報をお願いします。
M
会議室デビュー日: 2005/12/06
投稿数: 5
投稿日時: 2005-12-06 20:08
こんにちは。

ActiveXとほぼ同様な機能を
DLL形式のコマンドとして用意してます。
となっています。
対応開発コンテナはCOMラッパー
となってました。
DLL関数コマンドがありまして
そのコマンドを使用したいのです。
申し訳ありません。

引用:

Tdnr_Symさんの書き込み (2005-12-06 19:11) より:
こんにちは。

引用:

Mさんの書き込み (2005-12-06 18:33) より:
VC++で作成されたDLLをVC++.NETから
呼び出すにはどうしたらよいでしょうか。



「VC++」と「VC++.NET」というのは、なにか区別されているのか分かりませんが…

VC++で作成できるDLLにはいろいろ種類があります。

・ノーマルなWin32 DLL(Cの関数をエクスポートしたもの)
・拡張 DLL(Cの関数以外にも、変数やC++クラスをエクスポートしたもの)
・ActiveX DLL(COMのインプロセスサーバー)
・マネージコードのDLL(VC++6以前では作成不可能)

だいたい上記のうちのどれかだと思いますが、
DLLの種類によって、呼び出し方も異なってきますので
もう少し情報をお願いします。



Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-12-06 20:44
こんばんは。

引用:

対応開発コンテナはCOMラッパー
となってました。



この部分の解釈の仕方がよく分かりませんでしたが…

引用:

Mさんの書き込み (2005-12-06 20:08) より:

ActiveXとほぼ同様な機能を
DLL形式のコマンドとして用意してます。
となっています。
DLL関数コマンドがありまして
そのコマンドを使用したいのです。
申し訳ありません。



どうもノーマルなWin32 DLLだということですね。

呼び出し方は2通りあります。
「ロード時リンク」と「実行時リンク」です。

・ロード時リンク(暗黙のリンク)
 この場合には、DLLとは別に、ヘッダファイル(.h)とインポートライブラリ(.lib)というものが必要です。
 ・ヘッダファイルには通常、DLLでエクスポートされている関数のプロトタイプ宣言が記述されています。
 ・インポートライブラリは、DLL作成時に同時に作成されるlibファイルです。
 DLLと共にこの2つのファイルが提供されていれば、
 ソースコード内でヘッダファイルをインクルードし
  #include "hoge.h"
 リンカにインポートライブラリ hoge.libを追加します。

・実行時リンク(明示的リンク)
 この場合は、ヘッダファイルもインポートライブラリも必要ありません。次のAPIを使用します。
 ・LoadLibrary
 ・GetProcAddress
 ・FreeLibrary
 "LoadLibrary GetProcAddress"などでネット検索すれば、サンプルコードがたくさん見つかると思います。
M
会議室デビュー日: 2005/12/06
投稿数: 5
投稿日時: 2005-12-13 13:02
Tdnr_Sym様
どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)