• ベストアンサー

DLLの作りかた

サンプルで配布されたアプリケーションのEXEファイルをDLL化して、自作するアプリケーション上で利用したいと思っています。 DLLってどうやって作成していくのでしょうか? 初心者にとって、この道は険しいでしょうか?

noname#47454
noname#47454

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

  • ベストアンサー
  • uyama33
  • ベストアンサー率30% (137/450)
回答No.3

 どんなコンパイラを使っていますか? 私は、ボーランドのものを使っていますが、 最初の選択で  DLL を作るにして、 サンプルをコンパイルしてみれば すぐできます。  その、コードをみながら どこを変えるか考えてみれば そんなに難しくはないと思います。    ビジュアルC++ でも DLLのサンプルがすぐできますので 小さいものを作って調べればよいと思います。  最初から大きなものを扱いさえしなければ 初心者でも難しくはありません。

その他の回答 (2)

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 DLL を作成するのであれば、dllexport/dllimport を使用するのが簡単で 良いと思います。 以下のURL を参考にしてみて下さい。

参考URL:
http://www02.so-net.ne.jp/~handa/deadend/trialWin32.html
  • rewind
  • ベストアンサー率18% (11/59)
回答No.1

>初心者にとって、この道は険しいでしょうか? 初心者って定義は、どの程度なのかよくわかりませんが、 下記のサイトが参考になるのでは?? ちょっと外れた書き方かもしれませんが、 トラブッタ方が、最終的に自分の為になるのかも? 自分であれこれ思考錯誤して書くからですかねえ。 がんばって下さいね。

参考URL:
http://www.athomejp.com/goldfish/

関連するQ&A

  • 読み込むDLLのディレクトリを変更したい

    Visual C++ 7.1を使用しています。 ライブラリを使って作成したアプリを配布するとき、 一緒にDLLファイルも配布しないと起動できませんよね? 通常は、DLLファイルのパスは実行ファイルと同じか、 system32などのディレクトリに入れなければ 「~~~.dllが見つかりません。」 みたいなエラーが表示されるかと思います。 (違ったらすみません) そうではなく、DLLファイルが10個以上ありますので、 実行ファイルと同じディレクトリだとややこしくなるため、 実行フォルダより1つ下の階層にまとめて置きたいのですが、 そのような事は可能なのでしょうか? できれば、LoadLibraryなどの関数は使わず、 何かしらの設定で出来るのであればそれが望ましいです。 可能でしたら、方法をご伝授いただけると助かります。 よろしくおねがいします。 サンプルですが構成としては以下のような感じです。 (※[ ]はフォルダ名を表します) [Main]  ReadMe.txt  実行ファイル.exe  [Image]   image1.png   image2.png  [Sound]   sound1.wav   sound2.wav  [DLL]   graphics2d.dll   input.dll   sound.dll   file.dll

  • dll作成

    Visual studio2012利用し、 Win32プロジェクト から DLLを選んで、テンプレートに、関数を記入。ヘッダファイルを追加し、そこに関数の宣言を書いた。 ビルドすると、Debugフォルダに.dllは作成され、exeファイルが作成されない。 デバックなしで開始するとdllは開始できません。とメッセージがでます。 作成されたdllファイルの開始の仕方を、教えてください。

  • ダイアログベースアプリのDLL化の方法について

    ダイアログベースで作成してあるアプリexeを DLL化するのですが、その方法が分かりません。 ダイアログの使用はやめるつもりです。 これまでやってみたことは、 プロジェクトのプロパティで、EXEファイルからDLLに設定を 変更しました。 http://hp.vector.co.jp/authors/VA019517/howtodll.html サンプルを見て、既存のソースに__stdcallなどを記載したいのですが DLLが作成されませんでした。 新規にプロジェクトを作成して、サンプル通りにやった場合は DLLが作成されました。 呼び出したい関数は、別々のファイルですが、 1つのファイルにまとめる必要がありますか? ダイアログベースはやめます。 この2つの関数は、同じDLLにします。 ↓DLL化するソース。ここを外部EXEから呼び出したい。 Test_aa_App.cpp --------------------------------------- CTest_aa_App::InitInctance(){ //初期化処理 } ↓呼び出し対象DLL Test_bb_Dlg.cpp -------------------------------- CTest_bb_Dlg::Test() { // 処理 } 初歩的なことだと思いますが、まず、どのように ソースを変更すれば良いか教えてください。 VS2003 C++6.0 よろしくお願いします。

  • VC++で作成したDLLのデバッグ

    VC++6.0で作成したDLLファイルのデバッグ作業でVBでコンパイルした EXEファイルを使うと、例外エラーが発生してしまいます。 EXEファイルにデバッグ情報が書き込まれるのでしょうか? 次からそのEXEファイルを利用すると、やはり例外エラーがおきます。 (それに長い間気づかず、ずっとバグ探しをしてました。) VC++のDLLファイルのデバッグモードはVBのEXEファイルでは利用できないのでしょうか?

  • VB2005で作成したDLLの呼び出し方

    はじめまして、VB2005(.NET)初心者です。 現在、各プログラムを実行するためのメニュー プログラムを作成しています。 .net以前では、各プログラムをEXEで作成し API関数を利用し、メニューより実行させて いましたが、今回、各プログラムをEXEではなく dllで作成し実行する方法で作ることになりました。 各プログラムのdllを実行する方法がわかりません。 参考書等みてみましたが、見当たりません。 どのようにしていらっしゃるか教えて下さい。 宜しくお願いいたします。

  • BCBで作成したDLLを、VC++で静的リンクさせる方法

    BCBで作成したDLLを、VC++で静的リンクさせる方法 Borland C++ Builderで作成したDLLを、VC++アプリケーションで利用できるように LIBファイルに変換したいのですが、上手くいきません。 下記の手順を踏みました。 1. BCBでDLL作成   「VC++スタイルのDLL」で作成、   「VCLを使う」「CLXを使う」「マルチスレッドを使う」はチェックせず 2. コマンドラインで「IMPDEF.exe」を使用して、dllからdefファイル作成   (IMPDEF.exeは、\Borland\CBuilder6\Binに格納されていた) 3. コマンドラインで「LINK.exe」「LIB.exe」を使用して、defからlibファイル作成   (LINK.exeとLIB.exeは、\Microsoft Visual Studio\VC98\Binに格納されていた) 4. VC++プロジェクトファイルを保存したフォルダに、DLLファイルとlibファイルをコピー 5. VC++の「プロジェクト」-「設定」-「リンク」-「オブジェクト/ライブラリモジュール」に   作成したlibファイルを追加 VC++プロジェクトをビルドすると、下記のエラーメッセージが表示されます。 ///////////////////////////////////////////////////////////////////////////////// dllread.obj : error LNK2001: 外部シンボル "__imp__(関数名)@0" は未解決です LIBC.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です Release/dllread.exe : fatal error LNK1120: 外部参照 2 が未解決です。 link.exe の実行エラー ///////////////////////////////////////////////////////////////////////////////// BCBとVC++のバージョンは、下記の通りです。 BCB Professional 6.0 VC++ 6.0 ちなみに、同じDLLを動的リンクで利用することは出来ました。 初心者の質問で申し訳ございませんが、解決策が分かる方がいらっしゃいましたら 教えていただけないでしょうか?

  • Visual Studio .NET C# でDLLを作成し、VB.N

    Visual Studio .NET C# でDLLを作成し、VB.NETで呼び出す初心者向けのサンプルについて  現在、Visusal Studio .NET C#でDLLを作成して、それを、VisualBasic.NETのWindowsアプリケーションで呼び出す簡単なプログラムを作成したいと思っているのですが、書籍をあたってもなかなか参考になる書籍がみつけられなく、サンプルのサイト又は、自分でそのようなプログラムを作成している人にぜひご教授願いたく、質問させていただきました。当方、初心者ですので、何卒宜しくお願いいたします。

  • dllの取得

    VB2005を使用しています。実行中のシステムで使用しているDLLは Assembly.GetReferencedAssembliesを使用して取得できたのですが、 処理を行う過程で、別のシステム(例:Sample.exe)で実行に必要なDLLを取得する方法がわかりません。 どなたかわかる方がいらっしゃれば是非ご教授ください。 ちなみに、Sample.exeは起動していません。 必要であればProcess.Start()等で一時的に起動しても構いません。 非表示で起動してしまえばいいので… ↓雰囲気的にはこんな感じです。 '指定された実行可能ファイルに必要なDLL一覧を取得 Dim sDllFiles() AS String = XXX.XXXX("C:\Test\Sample.exe")

  • DLLとインポート、エクスポート

    環境 Microsoft Visual C++ DLLはWin32 Dynamic-Link Library ExeはWin32 Application で作成しています。 DLLにメッセージボックスを表示するのみの処理の関数があり。 Exe側でその関数を使用したいだけです。 DLLのヘッダファイルにエクスポートしたい関数を _declspec(dllexport) void exportmain(); としています。 Exeではインポートを __declspec(dllimport) void exportmain(); としています。 プロジェクト⇒設定⇒リンクにlibファイルの設定もしています。 dll、libファイルの場所も問題ないと思います。 しかし、ビルドすると「外部シンボル~~未解決です」とエラーがでてしまいます。なにか原因がわかるかたおりましたら、ご教授お願い致します。

  • リソースのみのDLLの作り方と使い方

    複数のJPEGファイルをDLL化して、ダイアログベース(VC++6)のアプリケーション上 で表示したいのですが、DLLってどうやって作成していくのでしょうか?

専門家に質問してみよう