問題タブ [vb6-migration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1561 参照

vb.net - vb.netのMaskedTextBoxで、vb6のMaskedEditコントロールのcliptextプロパティと同等です。

このプロパティは便利ですが、vb.netで直接置き換えることはできません。ありますか?ありがとう

0 投票する
4 に答える
86 参照

c# - VB6のccDebugに相当するC#

VB6コードをc#に変換しようとしていますが、VB6でこのコードに遭遇しました

このコードを変換するか、他の方法でこれを行うのを手伝ってください。

ありがとう

0 投票する
2 に答える
2738 参照

vb6 - VB 6 InteropForms:ファイル[...]はActiveXコンポーネントとして登録できませんでした

私はウォークスルーを進めており、コントロールをVB6ツールボックスにロードしようとしています。

DLLを参照としてロードできますが、ActiveXコンポーネントとしてロードすることはできません。試してみると、「InteropForms:ファイル[...]はActiveXコンポーネントとして登録できませんでした。」というメッセージが表示されます。

実行時に通常のCOMオブジェクトとしてコントロールを作成できます。

ジョナサン

編集:

RegSvr32を試してみると、次のメッセージが表示されます。

[...]がロードされましたが、DllRegisterServerエントリポイントが見つかりませんでした。このファイルは登録できません。

編集2:

RegAsmに登録すると、コンポーネントのリストに表示されます。ただし、DLLを確認すると、ロード中にエラーが発生します。

0 投票する
2 に答える
373 参照

.net - 巨大なモノリシックVB6WinFormsアプリの一部を.Netに徐々にリファクタリングします

一言で言えば、アプリはデータベースから何かを行うための命令を検索し、アクションを実行し、そのアクションの成功または失敗に関する情報をデータベースに保存します。Officeアプリケーションの自動化、ファイルのコピー、検索の実行など、約40の異なるアクションを実行します。

アプリケーションは単一のEXEであるため、すべてがメインアプリのプロセススペースで実行されます。これは、作業を行うために多くのサードパーティのDLLをロードする必要があり、多くの場合、不快なことを実行してクラッシュするため、不安定性の主な原因となっています。アプリ全体。

計画:危険な重労働を行うコードをVB6 exeから、メインアプリとは独立して実行される外部プロセスに移動したいと思います。元のアプリはデータベースのものだけを処理し、入札を行うために他のプロセスを開始します。

これを行うための最良の方法は何ですか?まだVB6を使用している場合は、これを行うためにActiveX EXEを作成すると思いますが、.Netに相当するものが何であるかはわかりません。理想的には、VB6アプリは、外部プロセスをインスタンス化するオブジェクトを宣言し、オブジェクトセットパラメーターのメソッドを使用してプロセスを実行し、場合によっては進行状況の通知を受け取り、最後に操作の結果を受け取ります。

これを行うための最良の方法は何ですか?

ありがとう!!

0 投票する
4 に答える
669 参照

vb.net - データベースに関するアドバイスが必要: VB6/ADO/JET アプリを VB.NET に移植する

ADO を使用して JET データベースにアクセスする小さな VB6 アプリケーションを、Visual Studio 2008 の vb.net アプリに更新する (実際に書き直す) 必要があります。

私の調査では、LINQ を使用する必要があることが示唆されていますが、JET に接続することはできないようです。JET が非推奨になった場合、何を使用すればよいですか? または、LINQ なしで ADO.NET を使用する必要がありますか?

SQL Server には答えないでください。- これは、エンド ユーザーが企業環境または非企業環境で簡単にインストールできるアプリである必要があり、継続的な技術的メンテナンスを必要としないものであってはなりません。SQL Express のインストールを開始しましたが、少なくとも 2 つのシステム アップデートが必要になった時点で停止しました。これは、この小さなアプリには複雑すぎるためです。

0 投票する
2 に答える
376 参照

asp.net - VB6 の「レガシー コード」と Web アプリケーションの混在

私は、ASP.NET MVC2 を使用して VB.Net で記述された新しい Web サイトに取り組んでいます。さまざまな複雑なビジネス ロジックに対して「レガシー」VB6 コードを呼び出す必要があります。VB6 は多くの dll で構成されるフレームワークであり、非常にステートフルです。クライアント アプリケーションでフレームワークがどのように使用されるかをほとんどエミュレートしています。次に、ファイルをロードします(さらに多くの状態)。

これを Web アプリで使用できるようにするための「Web サービス インターフェイス フレームワーク」が提供されています。この「Web フレームワーク」は、IIS で実行される薄いレイヤーの背後にあるレガシー コードを隠します。IIS によって提供されるスレッド プールがメモリ使用量などを削減するという考えです。各インスタンスは非常にステートフルであるため、スレッド プールが機能する方法がないため、これを提供した人は要点を見逃していると思わずにはいられません。ユーザーがプールから 1 つの特定のオブジェクトを使用してログオンすると、他のオブジェクトはそのクライアントにサービスを提供できなくなります (状態がないため)。また、Web サービス インターフェイスと関連する SOAP マーシャリングを追加すると、オブジェクトを直接呼び出す場合に比べてオーバーヘッドが大きくなります。

これを行う唯一の方法は、すべてのクライアントによって使用され、完了するまで各呼び出しでブロックされる単一のレガシー インターフェイス インスタンス、または新しいスレッドで作成され、存続する各レガシー インターフェイス オブジェクトを持つクライアントごとのスレッドのいずれかです。クライアントの人生。

これらのどれも理想的ではありませんが、問題のコードの量と、.net への長期にわたる移行プログラム (2 年以上でまだステートフル) では、代替案が思いつきません。元のクライアント アプリを一部の顧客向けに citrix 環境で実行しているため、十分に強力なサーバーがあれば、クライアントごとのスレッドでも問題なく実行でき、フレームワーク自体のオーバーヘッドは、クライアント アプリが関与する場合よりも低くなるはずです。

何か案は??

0 投票する
4 に答える
8743 参照

.net - DLL COM をアクセス可能にする

VB6/VBA で利用できるようにしたい .Net で書かれたクラス ライブラリがあります。私が試したことはうまくいきませんでした(明らかに、私はこの質問をしています)。これが私がしたことです:

  1. Visual Studio 2010 Express でクラス ライブラリ プロジェクトを作成し、コードをクラス モジュールに配置しました。
  2. プロジェクトのプロパティを開き、「アセンブリ情報」に移動し、「COM を可視化する」にチェックを入れました。
  3. 「高度なコンパイル」オプションに移動し、.Net 2.0 をターゲットにしました (これは非常に単純なコードです)。
  4. 次に、「システム」を除くすべての参照を削除しました。
  5. プロジェクトをビルドし (警告やエラーなし)、DLL を Bin フォルダーから C:\Windows\System32\ にコピーしました。
  6. RegSvr32 を実行して DLL を登録したところ、エラーが発生しました。

モジュール「MyDll.dll」がロードされましたが、エントリポイントの DLLRegisterServer が見つかりませんでした。

「MyDll.dll が有効な DLL または OCX ファイルであることを確認してから、再試行してください。

明らかに、私の最初の試みは少し単純でした。誰かがガイダンスを提供できますか?

0 投票する
1 に答える
305 参照

.net - オブジェクトのインスタンス化時のエラー

VB6/VBA で使用できるクラス ライブラリを作成しようとしています。ここで受け取ったいくつかの支援により、私は次のことを行いました。

  1. Visual Studio 2010 Express でクラス ライブラリ プロジェクトを作成し、コードをクラス モジュールに配置しました。
  2. 「インターフェース」と呼ばれるこの素晴らしいものが必要であることを学びました...それらの1つを作成しました:)
  3. プロジェクトのプロパティを開き、「アセンブリ情報」に移動し、「COM を可視化する」にチェックを入れました。
  4. 「高度なコンパイル」オプションに移動し、.Net 2.0 をターゲットにしました (これは非常に単純なコードです)。
  5. 「システム」以外のすべての参照を削除しました。
  6. プロジェクトをビルドし (警告やエラーなし)、DLL を Bin フォルダーから C:\Windows\System32\ にコピーしました。
  7. RegAsm /tlb を実行しました。すべてがうまくいっているようです。

急ごしらえのテストを実行するために Excel を開いたところ、TLB が利用可能になりましたが、2 つの問題があります。

  • Object Browser/Intellisense でクラスとインターフェイスの両方を確認できます。
  • いずれかのオブジェクト ( ) のインスタンスを作成しようとするとSet obj = New MyObj、次のエラーが表示されます。

自動化エラー システムは、指定されたファイルを見つけることができません。

オブジェクトへの参照を設定でき、Intellisense はそれを見ることができます。実際にオブジェクトを作成しようとすると、そのエラーが発生します。私はステップを逃しましたか?

0 投票する
1 に答える
377 参照

.net - COM ライブラリのプロパティ/メソッドの説明

COMClass を作成した場合、結果の tlb ファイルを参照すると、XML Summary タグの値が VB6/VBA のオブジェクト ブラウザーに表示されないことに気付きました。これらの値を表示する方法はありますか?

0 投票する
1 に答える
2180 参照

vb6 - VB6 で Sheridan 3D コントロールを置き換えるには?

私は、多数の外部コントロールを使用する大きな vb6 アプリケーションを維持する最初の価格を獲得しました (大きな意味: 現在、ゼロから書き直すことはオプションではありません)。

サードパーティのコントロールをより標準的なものに置き換えて、vb.net へのスムーズなアップグレード パスを探しています。

Sheridian 3D コントロールの簡単な代替品はありますか? (視覚効果は気にしません、機能性がポイントです。)