問題タブ [vb6]

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 投票する
13 に答える
317812 参照

arrays - VBA配列ソート機能?

VBA で配列の適切な並べ替えの実装を探しています。クイックソートが優先されます。または、バブルまたはマージ以外の他のソート アルゴリズムで十分です。

これは MS Project 2003 で動作するため、Excel のネイティブ関数や .net 関連のものは使用しないでください。

0 投票する
5 に答える
3900 参照

debugging - Microsoft JET SQLクエリログまたは「顧客のプログラムをデバッグするにはどうすればよいですか?」

問題:

最大の顧客が作成したプログラムを使用して、注文の受け取り、輸送の予約、その他の注文関連の作業を行います。プログラムを使用する以外にチャンスはありません。お客様は、プログラムの問題に関して非常にサポートしていません。私たちはプログラムと一緒に暮らす必要があります。

現在、このプログラムは2人以上のユーザーで使用するとほとんどの場合非常に遅いので、カーテンの後ろを見て問題の原因を見つけようとしました。

私がこれまでに見つけたプログラムについてのいくつかのポイント:

  • それはVB6.0で書かれています
  • これは、1人のユーザーのマシン上のフォルダーにあるパスワードで保護されたAccess-DB(Access 2000 MDB)を使用します。
  • そのフォルダはネットワーク上で共有され、他のすべてのユーザーによって使用されます。
  • msjet40.dllバージョン4.00.9704を使用してアクセスと通信します。ADOだと思いますか?

また、Process Monitorを使用してファイルアクセスを監視し、プログラムが非常に遅い理由を調べました。プログラムがアイドル状態の場合でも、mdbファイルに対して何千もの読み取り操作を実行しています。もちろん、ネットワーク上ではこれは非常に遅いです。

プロセスモニタートレースhttp://img217.imageshack.us/img217/1456/screenshothw5.png

本当の質問:

読み取りアクティビティの原因となるクエリを監視する方法はありますか?設定できるトレースフラグはありますか?JET DLLをフックしますか?プログラムがいくつかの高価なクエリを実行しているため、JETがプロセスで大量のデータを読み取っていると思います。

PS:私はすでにmdbを会社のファイルサーバーに配置しようとしましたが、ローカル共有よりもアクセスがさらに遅いという成功を収めました。また、クライアントのロックメカニズム(日和見ロック)を変更しようとしましたが、成功しませんでした。

私は何が起こっているのかを知りたいので、顧客の開発者がプロ​​グラムをより速くするのを助けるために、いくつかの難しい事実と提案が必要です。

0 投票する
5 に答える
21956 参照

vb6 - VB6 アプリのデバッグ時に作業ディレクトリを設定するには?

VB6 実行可能ファイルをデバッグしています。実行可能ファイルは、実行時に現在のディレクトリから dll とファイルをロードします。デバッガーで実行すると、現在のディレクトリは VB6 のディレクトリのようです。

VB6 の作業ディレクトリを設定するにはどうすればよいですか?

0 投票する
8 に答える
10838 参照

vb6 - DoEventsなしでVB6.0で長時間実行されているプロセスをキャンセルしますか?

DoEvents を使用せずに VB6.0 で実行時間の長いプロセスをキャンセルすることは可能ですか?

例えば:

「キャンセルした場合...」の前に「DoEvents」が必要だと思いますが、もっと良い方法はありますか?お久しぶりです…

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

winapi - ボーダレス タスクバー項目: 右クリック メニューの使用 (VB6)

が 0 に設定されている場合でも、プロパティBorderStyleをオンにするか、windows API を直接使用することで、強制的にタスク バーにウィンドウを表示することができます。ただし、このようなタスクバー エントリには、タスクバー エントリに右クリック メニューがありません。それらを右クリックしても、コンテキスト メニューが表示される代わりに何も実行されません。標準またはカスタム ハンドラーをアタッチする方法はありますか?ShowInTaskbarSetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, Win.GWL_EXSTYLE) Or Win.WS_EX_APPWINDOW

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

vb6 - VB6 と MSBuild の統合

したがって、これは、レガシー プロジェクト/コードのビルド/コンパイルをチーム ビルド/MSBuild 環境、特に Visual Basic 6 アプリケーション/プロジェクトに統合しなければならなかったすべての人に対する質問です。

カスタム ビルド タスク (私は反対ではありません) を作成する以外に、従来の VB6 プロジェクトのコンパイルとバージョン管理を MSBuild ビルドに統合するための最良の方法について何か提案はありますか?

CodePlexで FreeToDev msbuild タスクがあることは知っていますが、現時点では撤回されています。

理想的には、コードをバージョン管理してコンパイルし、msbuild ログのコンパイル出力 (特にエラー) をキャプチャすることを検討しています。

この機能をカスタム タスクにカプセル化することについてのアドバイスを見てきましたが、(シェル コマンドの実行以外に) 誰かが別の解決策を試したのではないかと本当に疑問に思いました。

理想的には、を使用してコマンドを実行することは最後の手段です..

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

vb6 - vb6でもEnterキーがボタンクリックを発火させないようにする

プロセスの実行中に表示されるプログレスバーとキャンセルボタンを備えたフォームがあります。ボタンの「キャンセル」プロパティは true に設定されているため、エスケープを押すとプロセスがキャンセルされます。

ただし、ボタンはフォーカスを取得できるフォーム上の唯一のコントロールであるため、プロセスの実行中にユーザーが誤って Enter キー (またはスペースバー) を押すと、プロセスはキャンセルされます。

(フォーム上で) KeyPreview を true に設定してから KeyAscii を 0 に設定することでスペース バーが機能しないようにしましたが、ボタン クリック イベントが最初に発生するため、このアプローチはエンター キーでは機能しないようです。

ボタンの TabStop プロパティを「false」に設定しようとしましたが、変更はありません。

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

vb6 - VB 6.0 での ini ファイルの使用

私はばかげているに違いありませんが、VB 6.0 で昔ながらの ini ファイルを読み取る方法が見つからないようです。私が見つけることができるのは、レジストリの読み取りと書き込みに関することだけです。誰かが私を正しい方向に押し進めることができますか? 注意してください、私はプログラマーではなく、自分のコンピューターで無害な楽しみを持とうとしているだけの愛好家です。

0 投票する
5 に答える
2768 参照

vb6 - VB6の学習

Java開発からMSFT環境に移行しています。このアプリは現在VB6で記述されており、将来的にVB.NET/C#に移行する予定ですが、今すぐVB6を入手する方法を見つける必要があります。私はその古いと言われています、そしてそれに関する本は最近利用できません。

任意のヒント?サイト?

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

vb.net - アプリケーションの更新を容易にするアーキテクチャ

私は一連の数値に計算を適用するシステムを導入しています (詳細はあまり関係ありません)。システムユーザーが適用できる計算セットが多数あり、新しいセットが頻繁に追加されます。現在、新しい計算セットをシステムに追加する必要がある場合、それらはコード ベースに追加され、システムの新しいバージョンがリリースされます。まったく新しいバージョンをリリースすることなく、新しい計算セットをシステムに追加できるようにしたいと考えています。また、これらの新しい計算がシステム ユーザーに自動的に表示されるようにしたいと考えています。現在、計算セットごとに新しい関数が作成され、適切な関数名を含むレコードがシステム テーブルに追加されます。これらのレコードは、リストからそれらを選択するシステム ユーザーに表示されます (関数名にはもちろんエイリアスが付けられます!)。

これは私が継承した VB6/Access アプリで、現在 VB.NET と SQL Server で書き直しています。

これを行う最善の方法についてアドバイスはありますか?