• ベストアンサー

DLL不要のソフト製作方法について教えてください

msystemの回答

  • msystem
  • ベストアンサー率42% (79/186)
回答No.8

>私の知識と理解の無さになにかもめているような・・・ いえいえ、私は、もめているという気はありません。TAGOSAKU7さんも非常に大人の回答をいただきありがとうございます。 動的リンク、静的リンクというのは、Windowsのプログラムでは、テキストボックスや、リストボックス、グリッドコントロールなど、さまざまな部品がありますよね。そのような汎用的な部品は、DDLやOCXなどの別ファイルにし、使いたいプログラムがそのプログラムを使い機能を実現します。ただ、使いたい部品がコンピュータにない場合、DLLなどもいっしょにインストールしないと機能しないわけです。これが、動的リンクです。(実際は、プログラムを実行したときに、部品を探し使用するという意味だと思ってください。) 一方、静的リンクは、使いたい部品がDLLなどの形式ではなく、ソースプログラム(実際はコンパイル済みライブラリという形式)で、ツールに付属しています。ですのでその部品の機能を使ってEXEファイルなどを作成するときは、自分で書いたコードといっしょになって、ひとつのファイルになりますので、DLLなどが不要となるのです。(ただし、EXEファイルサイズが大きくなるという欠点もありますが)そのためコピーするだけで、インストールができ、削除するだけでアンインストールができるわけです。私が名前をあげたツールは、この部品のソース(実際は静的リンクライブラリ)が付属していますので、VBではActiveXを使わなければ実現できない機能も、EXEファイル単体で実現できることになります。(もちろん、TAGOSAKU7さんの言うように、VBでも自分でその機能をコーディングすれば、EXE単体で配布することはできます。)

RJBASE
質問者

お礼

御丁寧に有難うございます。 なんとなく解かってきました。とりあえず、私の今の技術力では御二人がおっしゃっている事を100%理解する事ができない為、実践形式で学びたいと思います。 ちょうどAPIの本やActiveXの本を借りてきましたので、基礎からやっていきます。 「最初から本で調べろよ」と言われそうですが、何を調べてよいやらのレベルですので本質問に対する回答は大変役立ちました。 有難うございました。 ※以下調べてみました。そういえば動的リンクってDLLの直訳ですね。 【DLL】ダイナミックリンクライブラリ・・・動的リンク 【LIB】スタティックリンクライブラリ・・・静的リンク

関連するQ&A

  • VB6.0 ExeとDllの違い

    いつもお世話になっております。 今更ながらなのですがVB6.0について質問させて下さい。 新規でVB6.0を起動すると、「標準Exe」・「ActiveXExe」・「ActiveXDll」・「ActiveXコントロール」等がでてきますよね? 普段アプリを開発する時は「標準Exe」しか使用しないのですが、「ActiveXExe」・「ActiveXDll」・「ActiveXコントロール」の違いは何なのでしょうか?(どういうときに使い分けるのでしょうか?) ActiveXDll・・・ソースコードのみ?参照設定する?(クラスやモジュールと何が違うのでしょうか?) ActiveXコントロール・・・独自のコンポーネント(部品)を作る?(OCXのようなものでしょうか?) ActiveXExe・・・(一番分かりません) どなたかご教示お願いします。

  • スタートアップにdllを伴うexeを起動させたい

    です。例えば,TTBase.exeはこれ単体ではあまり意味がなく,様々な設定や拡張が (恐らく)記述された.dllをTTBase.exe以下の階層におかなければなりません。 しかしスタートアップフォルダ内に.dllをおいてしまうと.dllも起動時に開かれてしまい ます。  なんとか起動時にTTBase.exeを意味がある形で自動起動させられないでしょうか。

  • VB作成のEXEファイルの起動時に

    私の記憶ですとVBで作られたEXEファイルを作成したPC以外で起動する場合「ランタイムファイル」なる物が必要だと思ったのですがVB6.0で作成したEXEファイルを別のPCにて問題なく起動したのですが、もしかしてVB6.0からは「ランタイムファイル」が必要無くなったのでしょうか?

  • VB4.0にて作成したソフトの配布

    VB4.0(32ビット版)にてソフトを開発しました。 フリーソフトとして配布しようと思います。 インストーラ(EXEとReadMeとKernel32.DLL,Version.DLL)を作成し、知人のPC(Win2000)にインストールしようと したら「VB40032.DLLが見つかりませんでした。」と表示され、インストーラも起動できなかったそうです。 VB6.0のランタイムを入れてもだめだったそうです。 やはり、VB4.0(32ビット版)のランタイムが必要なのでしょうか?ご教授願います。

  • ASUSのユーティリティーソフトのアンインストール

    ASUSのM2A-VM HDMIというマザーボードでPCを組みました。 Vistaをインストールし、マザーボードについていたASUSのツールをインストールしたのですが、管理者権限のないユーザーでログインするとAsLoader.exe または aaCenter.exeというソフトの実行には管理者の許可が要るという警告が毎回出ます。 (シャットダウンからの起動だと両方出る。ログオフからのログインだとAsLoaderだけのよう) この2つのEXEは同じフォルダーにあり、どうも、ASUSのツールをインストールすると同時にインストールされるようです。 ツールをアンインストールしてもこれらは共通モジュールか何かでインストールするときは同時に入るのですが、アンインストール時は残り続けます。3つインストールしたツールを3つともアンインストールしたのですが、このフォルダだけ残っています。 プロパティーで管理者として実行のチェックを入れても変化はありませんでした。 どうやったらアンインストールできるでしょうか?

  • VB6でCDのみで動作する(ハードディスクを使用しないで)アプリの作成方法について

    ご存じの方ご教示願います。 VB6でアプリを作成したのですが、セットアップをしないでCDのみで動作するようにしてほしいと言う要望をうけました。 ランタイム関連をどうすればよいのかわからずに困っています。 考えた方法は、 (1)Visual Studio Installerでランタイム関連をアプリケーションフォルダにインストールするセットアップを作成 (2)ハードディスクのc:\にインストールする (3)インストール完了後、インストールフォルダをCDにコピーする でやってみたのですが、やはりいくつかのランタイム関連のファイルがないと言うエラーがでました。エラーで出力されたランタイムをWindowsのシステムフォルダよりCDにコピーで入れて動作させたのですが、エラーは無くなったのですが、一部で文字化けをしてしまいました。 現在方法が思いつかず困っています。どなたかよい方法をご存じの方がおられましたらご教示願えないでしょうか? それともやはりVBでCDのみで動作するアプリは作成できないのでしょうか? 宜しくお願いします。

  • VBからExcelVBAの起動

     みなさんはじめまして・・・。  今、VBからExcelのVBAで記述したモジュールを呼び出そうとしています。 VB6.0で作ってExcel97のブックに書かれているモジュールを起動するにはどのようにすれば良いのでしょうか? なにぶん初心者なので、説明足らずかも知れませんが 宜しくご教示ください。。。

  • VC++アプリからEXCELを起動しても画面が出ない

    はじめまして。 じんちゃんと申します。 EXCEL2003をVCアプリから起動したいのですが上手くいきません。 どなたかご存知でしたら助けてください。主な条件は次の通りです。 [概要] VCアプリ内でCreateProcess()を用いてEXCEL.EXEをブック(.xls)引数で起動しています(ブックはマクロ付き)。 [環境]  ・EXCEL2003のみの製品をインストール。VBランタイムは入れています。   VB6.0のランタイムを入れています。   Framework1.1も念のため入れました。  ・VC++.Netで開発したEXEからEXCELを起動しています。 2.OSはWindowsXP SP2です。 3.以前は動いていたのですが突然動かなくなりました。 4.現在でもブックを手動で起動すると画面が問題なく表示されます。 [現象] 1.起動するとEXCELの起動ロゴが一瞬表示されるが起動しない。 2.起動失敗後、ブックを手動で開くとセーフモード起動を聞かれます。   加えて起動後、マクロセキュリティを低に設定していたのが強制的に高   に設定されてしまっています。   CreateProcess()からの起動した場合にのみ起動失敗し環境が変わりま   す(前述のセキュリティレベルが強制変更される)。 3.EXCEL2003を再度インストールして実施しても変化なし。 4.CreateProcess()の戻り値は正常でした。 5.他のNOTEPAD.EXEをEXCEL.EXEに変更して起動すると表示される。   恐らくEXCELのみの固有問題と思います。 6.ブック指定なしでEXCEL.EXEを単体起動しても起動に失敗します。 よろしくお願いします。

  • VB6でバイナリ互換でDLL作成するには?

    VB6.0にてActiveX DLLで開発をしたいのですが、 プロジェクトのプロパティ.コンポーネントにてバイナリ互換を選択すると バージョン互換コンポーネントを設定できません。というエラーメッセージが出て、 DLLを作成できません。 プロジェクトはフォーム1画面、標準モジュール複数、クラスモジュールで構成されています。 DLL作成手順のアドバイスをお願いします。 もう1点、 ある程度、開発できたら単体テストを行います。 その際は現場で用意されているテスト起動画面を使用するように言われたのですが、 この方法だと自分の担当画面に修正を加えるたびに下記1~3の作業を行う 必要があると思うのですが、もっとスマートな方法はないのでしょうか? 1.修正したプロジェクトを保存してdllを作成する。 2.作成したdllを所定の場所(現場で指示された場所)に格納 3.テスト起動画面からそのdllを指定して単体テスト

  • Accessから既存VBexeファイル中のある画面を表示させたい

    VB6.0のexeファイルが起動しており、そちらのボタンを押すと、Access単体で作ったシステムを表示させ、 本体のVBのexeファイルをハイドなりで隠して使いたいと思っています。 こちらのやり方はなんとなく分かるのですが、逆に、 Accessを終了させるときに元のVBの呼び出した画面を表示させなくてはなりません。 これはタイミング的にAccessの仕事だと思うのですが、 VBAで可能でしょうか? それとも、VBのほうでできますか? すみませんが、教えてください。