問題タブ [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.
winforms - アプリケーションのシャットダウン時に、モードレス VB6 アプリケーションはどのようにクリーンアップを行うことができますか?
VB6 アプリケーションは、Interop Forms Toolkit を使用して、.NET で記述されたフォームを操作しています。ツールキットのドキュメントでは、ツールキットのメソッドを呼び出して、VB6 アプリケーションのシャットダウン時にツールキットに通知することを推奨しています。
VB6 アプリケーションは、スプラッシュ スクリーンをロードする Sub Main プロシージャを使用してから、いくつかのモードレス フォームを表示します。Sub Main が完了すると、アプリケーションはまだ実行されています。アプリケーションがシャットダウン中であることを検出し、Toolkit で cleanup メソッドを呼び出すにはどうすればよいですか?
vb.net - VBでシミュレーテッドアニーリングの実装を探しています
Visual Basicでシミュレーテッドアニーリングのかなりよく文書化された例を知っている人はいますか?
vb6 - VB6でプログラムでコールスタックを取得することは可能ですか?
関数でエラーが発生した場合、特にその関数が12の異なる場所から呼び出された場合に、それに至る一連のイベントを知りたいです。VB6でコールスタックを取得する方法はありますか、それとも難しい方法で取得する必要がありますか(たとえば、すべての関数やエラーハンドラーのエントリをログに記録するなど)?
vb.net - .NET サポートなしで Visual Studio 2008 で VB6 を書きますか?
VB6 アプリケーションを引き続きサポートする必要があります。VB6 (Visual Studio 6) と Visual Studio 2008 の両方がインストールされています。Visual Studio 2008 で VB6 プロジェクトを読み書きできますか? VB6 アプリケーションが損傷または破壊されることはありますか? 多くのスペースを解放して、Visual Studio 6 を取り除くことができれば、とてもすばらしいことです。
vb6 - 奇妙な VB6 ビルドの問題 (nlog に関連)
これは、nlog C++ API の使用に関連していると思います (nlog フォーラムに関する私の質問はこちら)。ここでこの質問をする目的は、より多くの聴衆に私の問題を知ってもらうことと、私の特定のシナリオで VB6 IDE がビルドに失敗したことの背後にある、より一般的なアイデアを得ることです。
簡単に言えば、私が抱えている問題は、nlog の C\C++ API (NLogC.DLL で定義されている) への呼び出しを持つアンマネージ C++ コンポーネントを参照する VB6 コンポーネントの構築に問題があることです。ビルドの問題はコンパイル時に発生するのではなく、バイナリがビルドされているときに発生します。これは、ある種のリンカー タイプの問題であることを示唆しています。VB6バイナリがどのように生成されるかについて十分に知りません。VB6 バイナリが生成されますが、破損しており、起動後すぐにクラッシュします。
VB6 で同様の経験をした人はいますか (nlog や C++ に関係する必要はありません)。
編集:このややあいまいな問題へのすべての応答に感謝します。残念ながら、まだ前進はありません。これを投稿してからの私の発見:
- コンパイル オプションを「微調整」しても、この問題は解決しないようです。
- 「空の」VB6 プロジェクトから nlog 対応の C++ コンポーネントへの参照を追加しても、プロジェクトがクラッシュしたり、奇妙なビルドの問題が発生したりすることはありません。したがって、これは「ネイティブ」な VB6 の問題ではなく、nlog とさまざまなコンポーネント、および他の参照コンポーネントで使用されるサードパーティ ライブラリとの相互作用に関する問題である可能性がありますか?
- C++ 呼び出し規則については、nlog 対応の C++ コンポーネントは、私が見る限り、これらの規則に準拠しており、nlog API 呼び出しを行わない限り、VB6 によって参照されたときに実際に正常に動作します。nlogc.DLL 自体が VB6 に準拠しているかどうかはわかりませんが、API 呼び出しは C++ コンポーネントから行われているため、それは重要ではないと考えていました。VB6 は、C++ コンポーネントが参照しているものを認識したり気にしたりすべきではありません (これに関する私の理解では...)
edit2: また、ビルド中に表示されるエラー メッセージは次のとおりです。「ロード中にエラーが発生しました。詳細については、"xxx" を参照してください。」ログ ファイルを表示すると、「コントロール xxx を読み込めません」と表示されます。興味深いことに、その特定のコントロールへのすべての参照がその特定のプロジェクトから消え、再度ビルドしようとするとコンパイル エラーが発生します。
memory - VB6クエリを使用したディレクトリウォークの高速化:キャッシュとRAMの問題?
以下は、マシン上にあるファイルの数をカウントするかなり単純な関数です。「C:\」で呼び出され、実行には約5秒かかります。しばらく実行していないか、最初にRAMクリアプログラムを実行していない限り、60秒以上かかります。毎回新しいスキャンを実行しているので(つまり、このスキャンだけなので、プログラムの新しいインスタンスを開始しているので)キャッシュされている可能性があるとは思いませんでしたが、おそらくメモリ割り当てに関連していますか?その高速実行を毎回実行する方法、またはそれが実行できない理由についてのアイデアはありますか?他のプログラム(SpaceMongerなど)は、RAMをクリアしたり、実行の合間に長時間待機したりしても、10秒でファイルの総数を取得できます。したがって、必ずしもVBである必要はありませんが、これを行う方法は間違いなくあります。
vb6 - アプリケーションのタイトルが VB6 で途切れる
プラットフォーム: Windows XP 開発プラットフォーム: VB6
[作成] タブの [プロジェクト プロパティ] ダイアログでアプリケーション タイトルを設定しようとすると、設定された文字数でタイトルが無言で切り捨てられているように見えます。App.Title プロパティを介してこれも試してみましたが、同じ問題が発生しているようです。私は気にしませんが、QA 部門は、タイトル全体を表示する必要があると主張しています。
誰かがこれに対する回避策または修正を持っていますか?
編集: 40 文字の制限について回答した人には、それが私が疑っていたことです。
実際、私は仲間の開発者を助けるためにこの質問を投稿したので、月曜日に彼女に会ったときに、あなたの素晴らしい提案のすべてを彼女に指摘し、それらのいずれかが彼女がこれを解決するのに役立つかどうかを確認します. 何らかの理由で、アプリによって表示されるダイアログの一部が App.Title 設定から文字列を取得しているように見えることは知っています。そのため、彼女は文字列の長さの制限について私に尋ねました。
Microsoft から決定的なもの (ある種の KB ノートなど) を見つけて、それを QA 部門に見せて、これが VB の単なる制限であることを理解してもらいたいと思っています。
vb6 - VB6には同等の#pragmaパックがありますか?
私は独自のバイナリプロトコルを処理する必要があるTCP/IPクライアントを開発しています。プロトコルヘッダーを表すためにユーザー定義型を使用し、UDTとバイト配列との間でデータをシャッフルするためにCopyMemoryを使用することを検討していました。ただし、VB6はユーザー定義型を整列させるためにパディングバイトを追加しているようです。#pragma pack
多くのC/C ++コンパイラで利用可能なディレクティブと同様に、VB6にUDTをパディングしないように強制する方法はありますか?おそらく、コンパイラに渡される特別なスイッチですか?
c++ - Visual Studio 6 のヒントとコツ
Microsoft の Visual Studio 6.0 IDE を使用して「レガシー」コードをサポートする必要がある人もいますが、意見は異なるかもしれませんが、Visual Studio シリーズの IDE の後のバージョンと比較して、一般的にユーザーフレンドリーであるとは見なされていません。
だから、あなたの最高の隠された/不十分に文書化された IDE 機能のいくつかについて聞きたいです (C++ または VB のいずれかである可能性があります)。通常どおり、投稿ごとに 1 つの機能を使用してください。
winapi - FILE_FLAG_NO_BUFFERING で開いたファイルの末尾をどのように書き込むのですか?
私は VB6 と Win32 API を使用してファイルにデータを書き込んでいます。この機能はデータのエクスポート用であるため、ディスクへの書き込みパフォーマンスが考慮事項の重要な要素です。そのため、 への呼び出しでファイルを開くときにFILE_FLAG_NO_BUFFERING
およびオプションを使用しています。FILE_FLAG_WRITE_THROUGH
CreateFile
FILE_FLAG_NO_BUFFERING
独自のバッファーを使用して、ディスクのセクター サイズの倍数でファイルにデータを書き込む必要があります。これは、セクター サイズの正確な倍数でない場合、文字が含まれるデータの最後の部分を除いて、通常は問題ありません。最後のブロックが書き込まれたら、これらの文字ゼロを含めないようにファイル サイズを設定するにはどうすればよいですか?
使用できますSetEndOfFile
が、これには、ファイルを閉じて、使用せずに再度開く必要がありますFILE_FLAG_NO_BUFFERING
。誰かが話しているのを見NtSetInformationFile
たことがありますが、VB6でこれを使用して宣言する方法が見つかりません。SetFileInformationByHandle
私がやりたいことを正確に行うことができますが、それは Windows Vista でのみ利用可能です。私のアプリケーションは、以前のバージョンの Windows と互換性がある必要があります。