• 締切済み

呼出する親関数のPG修正なしに子関数の追加、修正に対応したい(VB.net)

お疲れ様です。 以前同様の質問をし、ありがたく回答頂きましたが 環境が変更になりました。 環境はVB6 =>VB.net に変更になりました。 .netで以下の上手い方法はありますでしょうか。 ご教授頂けると助かります。 ----------- 色んな処理に分岐するプログラム(VB.net)があるとして、その分岐後の処理が頻繁に追加、修正されるとします。 その分岐するプログラムの修正、およびコンパイルなしで、分岐後の処理の変更に対応できるプログラムって作成可能でしょうか? ●イメージとして● ファイルとかDBに関数名を保存する。 そのファイルとかDBを参照して関数コールするって感じですが。 ファイルとかで取得した値で関数コールできますでしょうか?

みんなの回答

  • yamada_28
  • ベストアンサー率43% (21/48)
回答No.1

単純にdllを作っちゃうとよいのでは?

関連するQ&A

  • 呼出する親関数のPG修正なしに子関数の追加、修正に対応したい

    お疲れ様です。 3日考えましたが分かりません。 よろしくお願いします 色んな処理に分岐するプログラム(VB6)があるとして、その分岐後の処理が頻繁に追加、修正されるとします。 その分岐するプログラムの修正、およびコンパイルなしで、分岐後の処理の変更に対応できるプログラムって作成可能でしょうか? ●イメージとして● ファイルとかDBに関数名を保存する。 そのファイルとかDBを参照して関数コールするって感じですが。 ファイルとかで取得した値で関数コールできますでしょうか?

  • 実行時にVBのモジュールファイルを読み込んで実行する方法

    VB.netで作成したプログラムで、実行時に、ユーザが作成した*.vbファイル(VB.netのモジュールファイル)を読み込んで実行するというものを見たことがあります。 モジュールファイルにはいろいろな関数が記述されておりました(関数名等は決まりがあるのかもしれません)。どのように処理しているのかさっぱり見当がつきません。自分で調べた範囲では「リフレクション」というキーワードが出てきましたがいまいちピンときませんでした。これができればプログラムを再コンパイルしなくても動作(の一部)を換えることができ便利です。参考になるようなサイトなどご存知でしたら教えてください。

  • VB.NETが符合なしに対応しているかどうかを知る方法

    VB.NETが符合なしに対応しているかどうかを知る方法 DLLと共にVB.NET対応の関数定義ファイル(Cで言うところのヘッダファイル)を作成し、配布するつもりでいます。関数定義ファイルの引数や戻り値は、各関数ごとに符合付きや符合なしが混在するのですが、VB.NET 2003以前は符合なしには対応していないようです。 そこで、「符合なし対応版」と「符合付きのみ版」の2種類の関数定義ファイルを用意することになるのですが、これを1つの関数定義ファイルにまとめることはできませんか? 例えば、条件付きコンパイルで、符合なしに対応しているかどうかを知れれば可能か? 宜しくお願いします。

  • オラクル データ移行について

    こんにちは 2つのDBより新しい1つのDBにテータを移行することになりました。 VB.NETでプログラムを作成し移行しようと思っています。 今までは1つのDB内での移行は行った事があります。 今、悩んでいるのは他のDBのテーブルを参照したいのですが方法がわかりません。 よろしかったら教えていただけませんか? オラクルバージョンは11Gです。 VB.NET2008でプログラムを作成するつもりです。 よろしくお願いいたします。

  • 関数呼び出しに時間がかかる

    VB.NETに関してご質問があります。 下記ソースで、OKボタをクリックしたときにcmdOK_Click()関数が実行されます。 TimeLogは現在時刻をログに出力する関数です。 cmdOK_Click()内でTest()関数をコールしていますが、(1)と(2)の時間差が約3~4秒となります。 しかし、Test()関数内の「Dim rs As ADODB.Recordset = Nothing」を削除すると、(1)と(2)の時間差はほぼなくなります。 「Dim rs As ADODB.Recordset = Nothing」が関数内に記載されているだけで、時間が3,4秒もかかる原因は何でしょうか? <ソース例> 'OKボタンクリック時のイベント Private Sub cmdOK_Click(省略)  clsCommon.TimeLog("cmdOK_Click Start") '(1)現在時刻をログに出力  Test() End Sub Private Sub Test()  clsCommon.TimeLog("Test Strat") '(2)現在時刻をログに出力  Dim rs As ADODB.Recordset = Nothing End Sub

  • .objファイル、.lib ファイルについて

    ◆C++でのコンパイルされたプログラムの参照について。  以前、VB.netで開発をしていた時は、コンパイルをするとDLLが作成され、  それを他のプログラムからリンクして使用していました。  C++の場合h、cppのファイルをコンパイルすると、「.DLL」はできないのでしょうか? ◆.obj、.lib について  Visual Studioにて、.obj、.lib を、参照先に設定していますが、  内容をよくわかっていません。  オブジェクトリンク、ライブラリリンクとは、  (1)それぞれどんな概念なのでしょうか?  (2).obj、.libでは何が違うのでしょうか?

  • ExcelVBA 標準モジュール内関数の呼出し

    VB6.0からExcelの標準モジュール内のパラメータ付関数を呼出すにはどうしたらよろしいでしょうか? Dim app As Excel.Application Dim wb As Workbook Set app = CreateObject("excel.application") Set wb = app.Workbooks.Open("TestXl.xls") Set app = Nothing 以上のように記述し指定のエクセルファイルをオープンすることはできたのですが ここからどうやって標準モジュールを参照し、その中の関数を実行するかがわかりません。

  • C言語からC++の関数をコールする方法について

    初めて質問させて頂きます。 質問は2つあります。 ●1つ目の質問です。 この度、C言語ベースのプログラムに、C++で作成した関数を使用することになりました。 方法としてextern等を駆使しつつ、ラッパー関数を使って対応しております。 そこで質問なのですが、この場合、ラッパー関数に使用するファイル形式はcppまたはcのどちらが正しいのでしょうか?(どちらでも動きました) ●2つ目の質問です。 Windows環境(vs2005)では無事、CからC++の関数を呼ぶことに成功はしました。 しかし、本当に動かしたいのはLinuxでの環境になります。 先程作成したラッパー関数のファイルとC++で作成した関数のファイルをライブラリ(soファイル)化したものを使用し、コンパイルとリンクは問題なく通すことに成功したのですが、 実行させてみると、Cの関数からラッパー関数をコールしているのは確実なのですが、ラッパー関数の処理を通らず、プログラムが止まってしまいます。 試しにラッパー関数の処理を「return 0;」だけにして実行させてみましたが現象は変わらずでした。 そのため、ラッパー関数を呼ぶための何かに問題があると思っています。 ここで質問なのですが、ビルドのときにライブラリをリンクさせるだけでは駄目なのでしょうか。また、他に思い当たることがありましたらご教示頂きたいです。 Windows環境(vs2005)では期待する動作をしているためプログラムは問題ないと思っています。

  • atan2 オーバーロード関数の呼び出しを解決することができません

    はじめまして。 超初心者のものです。 かなり古いMayaのプラグインのソースファイルをコンパイルすることになり、以下のようなエラーが出てどうにも解決することができません。 1>.\MayaMath.cpp(164) : error C2668: 'atan2' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照) 1> C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(547): 'long double atan2(long double,long double)' の可能性があります。 1> C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(499): または 'float atan2(float,float)' 1> C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(110): または 'double atan2(double,double)' 大変申し訳ないのですが、こういった場合の回避の仕方 などご存じの方がいましたらよろしくお願いいたします。

  • VB.NET デリゲートへのコールバック関数の設定

    VB.NET デリゲートへのコールバック関数の設定 VB.NETとネイティブC/C++ DLL間でのコールバックについての質問です。 ネイティブDLLからVOID*で得られるコールバック関数をVB.NETのデリゲートに 登録するには、どのようにコーディングすればよいのでしょうか。 ---------- VB.NETソース ---------- Public Delegate Sub CALLBACK_00(ByVal Arg1 As Integer, ByVal Arg2 As Integer) Declare Function FuncPtrGet Lib "test.dll" () As CALLBACK_00 Dim Func As new CALLBACK_00(FuncPtrGet()); 2行目は、実際にはVOID*が帰るDLL関数です。 3行目がコンパイルで通りません。AddressOfで関数を指定するようにメッセージが出ます。

専門家に質問してみよう