• ベストアンサー

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

TAGOSAKU7の回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

基本的にコントロール類を使用すると、VB付随のDLLが必要になります。 VBのフォームが存在しているだけで、状況はコントロール類を使用しているのと一緒です。(フォームをロードすることがなくても、プロジェクトに含んでもいけません。) 回避する方法としては、フォーム(画面)を持たないEXEを作成すると、簡単にランタイム不要のEXEができあがります。 どうしても画面を持たせたいのであれば、CreateWindowなどのAPI関数を使用して画面をコードで作りこむ必要があります。(ここまでするならVBの意味はあるのであろうか?)

RJBASE
質問者

お礼

なるほど! 単体での起動にはVBはむいていないようですね。 では、フリーソフトで紹介されているDLL不要のソフト類は何で作成されているんでしょう?言語が違うんでしょうか・・・ ご回答有難うございました。

関連する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のほうでできますか? すみませんが、教えてください。