問題タブ [c++]
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.
c++ - メソッドがサブクラスでオーバーライドされないようにする方法はありますか?
子クラスが親クラスの特定のメソッドをオーバーライドするのを防ぐための C++ の言語機能または手法を知っている人はいますか?
仮想ではありませんが、これはまだ許可されています (少なくとも私が使用している Metrowerks コンパイラでは)。非仮想継承関数 X を非表示にすることに関するコンパイル時の警告だけが表示されます。
c# - ファイルを削除する代わりにごみ箱に入れるにはどうすればよいですか?
もちろん、プログラムによるソリューション...
c++ - CryptEncryptの適切な代替手段
私たちの製品には、Windows API関数CryptEncryptを介して暗号化されたSQL文字列(MSSQLサーバーまたはsybaseSQLのいずれかを選択)として、アプリケーションのデータベースに長い間データが保存されている状況があります。 (直接および復号化可能)
問題は、CryptEncryptが出力にNULLを生成する可能性があることです。つまり、データベースに格納されると、文字列操作によって、ある時点でCipherTextが切り捨てられます。
理想的には、NULLを含まないCipherTextを生成するアルゴリズムを使用します。これにより、既存のデータベースへの変更が最小限に抑えられます(列を文字列からバイナリに変更し、コードを文字列ではなくバイナリに処理する)データベースのアップグレード時に、既存のデータを復号化し、新しいアルゴリズムで再暗号化するだけです。
データベースはすでに適度に安全な環境(オープンネットワーク/インターウェブではない)にあるため、アルゴリズムは最も安全である必要はありませんが、ROT13(頭の中でほとんど解読できる)よりも優れている必要があります今!)
編集:ところで、暗号文を暗号文に変更する特別な理由はありますか?暗号文はもっと広く使われているようです...
.net - 警告 C4341 - 'XX': 符号付きの値が列挙型定数の範囲外です
C++ .Net アプリケーションをコンパイルすると、次のタイプの警告が 104 回表示されます。
XX がある場所
- WCHAR
- 長いです
- 少し
- バイナリ
- GUID
- ...
私が何をしても、これらの警告を削除できないようです。それらをダブルクリックすると、OdbcParameters を使用するコードの一部に移動します。残りのすべてのものを使用してテスト プロジェクトを試行しても、OdbcParameters は警告を表示しません。
これらの警告を取り除く方法はありますか? 彼らは、私が実際には見づらく書いたコードから本当の警告を発しています - そして、私のアプリに 104 個の警告があることを知っているだけで恐ろしい気分になります!
c++ - コンソール アプリケーションでの ocx の使用
ocx をすばやくテストしたい。その ocx をコンソール アプリケーションにドロップするにはどうすればよいですか。CodeProject でいくつかのチュートリアルを見つけましたが、不完全です。
c# - C++ 列挙の C# へのインポート
現在、古い C++ アプリケーションと対話する必要がある新しい C# プロジェクトの作成に取り組んでいます。C# アプリで使用する必要がある C++ アプリに既に存在するエラー列挙があります。
ファイルが一緒に更新されないと、同期の問題が発生する可能性があるため、C#で列挙を再宣言したくありません。
つまり、私の質問は次のとおりです。次のように宣言された列挙を取得する方法はありますか:
次のように C# プログラムで使用します。
c++ - QtWebKitのプラグインをインストールする方法
Qt 4.5の商用スナップショットを実行していて、ダウンロードしたプラグイン(.soファイル)を自分ので使用したいと考えていますQWebView
。このファイルを配置する必要がある特定の場所はありますか??を使用して取得できますQWebPluginFactory
か?
c++ - LinuxデバイスのパスをWindowsのドライブ名に一致させる方法は?
Linux環境である段階で低レベルのディスク操作を実行するアプリケーションを書いています。アプリは実際には2つの部分で構成されています。1つはWindowsで実行され、ユーザーと対話します。もう1つは、LiveCDから実行されるLinuxの部分です。ユーザーがWindowsドライブ文字を選択すると、Linuxパーツが対応するパーティションでアクションを実行します。問題は、Windowsのドライブ文字(C :など)とLinuxのデバイス名(/ dev / sda1など)の一致を見つけることです。これは私が醜いと評価している私の現在の解決策です:
パーティション情報(つまり、ドライブ文字、ブロック数、ドライブのシリアル番号など)をWindowsの事前定義された場所(つまり、システムパーティションのルート)に保存します。
/ proc/partitionsからパーティションのリストを読み取ります。SCSIまたはIDEハードドライブのメジャー番号と、ディスク全体ではなく実際のパーティションとしてそれらを識別するマイナー番号を持つパーティションのみを取得します。
ntfsまたはvfatファイルシステムのいずれかを使用して、それぞれをマウントしてみてください。マウントされたパーティションにWindowsアプリによって保存された情報が含まれているかどうかを確認します。
Windowsアプリによって書かれた必要な情報を見つけたら、実際に一致させます。/ proc / componentsで見つかった各パーティションについて、ドライブのシリアル番号(HDIO_GET_IDENTITY syscallを介して)、ブロック数(/ proc / componentsから)、およびドライブオフセット(/ sys /blocks/drive_path/partition_name/start)を取得します。これをWindowsと比較します。情報とこれが一致する場合-Linuxデバイス名と一緒にWindowsドライブ文字を保存します。
このスキームにはいくつかの問題があります。
これは醜いです。Windowsでデータを書き込み、それをLinuxで読み取ると、テストが悪夢になります。
Linuxデバイスのメジャー番号は、IDEまたはSCSIデバイスとのみ比較されます。これはおそらく失敗します。つまり、USBまたはFireWireディスクでは失敗します。これらのタイプのディスクを追加することは可能ですが、アプリを可能なデバイスの既知のサブセットのみに制限することは、かなり悪い考えのようです。
HDIO_GET_IDENTITYはIDEおよびSATAドライブでのみ機能するようです。
/ sys / blockハックは、IDEまたはSATAドライブ以外では機能しない場合があります。
このスキーマを改善する方法について何かアイデアはありますか?おそらく、Windowsアプリにすべてのデータを書き込まずにWindows名を決定する別の方法がありますか?
PSアプリの言語はC++です。これは変更できません。
c++ - C++ でツリーを作成するには?
ポインターの代わりに反復子を使用する C++ でツリー データ構造を作成するにはどうすればよいですか? これを行うことができるSTLには何も見つかりませんでした。私がやりたいことは、次のようなツリーを作成および操作できるようにすることです。
ありがとう、tree.hh はまさに私が探していたもののようです。
これが、任意のインデックス タイプを保持し、検索用に最適化され、挿入が得意なデータ構造の利点を得る場合は、マップの使用を検討してください。
マップは、対数検索、対数挿入、対数削除、線形空間など、ツリーと同じパフォーマンス保証を持つ連想コンテナーです。内部的には、赤黒木として実装されることがよくありますが、それは保証ではありません。それでも、STL ユーザーとして気にする必要があるのは、STL アルゴリズムとデータ構造のパフォーマンス保証だけです。それらがツリーとして実装されているか、小さな緑の男性として実装されているかは問題ではありません。
地図が必要かどうかわかりませんが、情報をありがとうございます。ツリーを実装する代わりに、可能な限りマップを使用することを忘れないでください。
c# - Java/C# から C++ に移行する最良の方法は何ですか?
私の大学では、ほとんどの授業で Java を使用していました。また、最近、夏のインターンシップで C# (および Visual Studio 環境) を学びました。今、私はコンピュータ グラフィックス入門クラスを受講しています。クラスを教えている大学院生は、C++ を使用して GLUT 経由で OpenGL バインディングにアクセスすることを好みます。
Java/C# から C++ への適切な移行方法に関する適切なリソースを持っている人はいますか? 明らかにポインターは大きな問題になるでしょうが、他に注意すべきことはありますか? チュートリアル、ガイドなどは非常に役立ちます!
ありがとう!