タグ付けされた質問 「c++」

C ++は汎用プログラミング言語です。もともとCの拡張として設計され、構文は似ていますが、現在は完全に異なる言語になっています。このタグは、C ++コンパイラでコンパイルされる(される)コードに関する質問に使用します。特定の標準リビジョン[C ++ 11]、[C ++ 14]、[C ++ 17]または[C ++ 20]などに関連する質問には、バージョン固有のタグを使用します。

24
実行可能ファイルをリバースエンジニアリングから保護していますか?
私はC / C ++コードを逆アセンブリやリバースエンジニアリングから保護する方法を検討しています。通常、私は自分のコードでこの動作を自分で容認することは決してありません。しかし、私が取り組んでいる現在のプロトコルは、さまざまな人々のセキュリティのために、決して検査または理解されてはなりません。 今、これは私にとって新しい主題であり、インターネットはリバースエンジニアリングを防止するために実際に機知に富んでいるのではなく、リバースエンジニアリングの方法に関する大量の情報を示しています 私がこれまでに考えたことのいくつかは次のとおりです。 コードインジェクション(実際の関数呼び出しの前後にダミー関数を呼び出す) コードの難読化(バイナリの逆アセンブリを壊す) 独自のスタートアップルーチンを記述する(デバッガーがバインドするのが難しい) void startup(); int _start() { startup( ); exit (0) } void startup() { /* code here */ } デバッガーのランタイムチェック(検出された場合は強制終了) 機能トランポリン void trampoline(void (*fnptr)(), bool ping = false) { if(ping) fnptr(); else trampoline(fnptr, true); } 無意味な割り当てと割り当て解除(スタックは大幅に変更されます) 無意味なダミー呼び出しとトランポリン(逆アセンブリ出力での大量のジャンプ) 大量のキャスト(難読化された分解用) これらは私が考えたことの一部ですが、適切な時間枠が与えられれば、コードアナリストがそれらをすべて回避または把握することができます。私が持っている他の選択肢はありますか?
210 c++  c  obfuscation  assembly 


28
Linux用のC ++ gdb GUIはありますか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 3年前休業。 この質問を改善する 簡単に言うと、誰かが最新バージョンのVisual C ++で得られる機能セットと同等またはそれに近いgdbのGUIを知っていますか? 詳細:Windowsでのプログラミングに多くの時間を費やしてきた人として、LinuxでC ++をコーディングしなければならないときにいつも見つけた大きな障害の1つは、コマンドラインgdbを使用して何かをデバッグすると、何倍も時間がかかることです。 Visual Studio、そしてそれは練習で良くなっていないようです。グラフィカルに表現する方が簡単または高速なものもあります。 具体的には、次のようなGUIを探しています。 コードのステップオーバーやステップインなどのすべての基本を処理し、変数とブレークポイントを監視します 複雑でネストされたC ++データ型の内容を理解して表示できる パラメータタイプなどの関連情報を表示しながら、テンプレートコードとデータ構造に混乱することなく、できればインテリジェントにステップスルーできます。 スレッド化されたアプリケーションを処理し、異なるスレッド間を切り替えて、ステップスルーまたは状態を表示できます。 gdbでプログラムを起動することに加えて、すでに開始されているプロセスへのアタッチまたはコアダンプの読み取りを処理できます。 そのようなプログラムが存在しない場合、少なくともいくつかの箇条書きの点を満たしているプログラムでの人々の経験について聞きたいです。誰か推奨事項はありますか? 編集: 可能性をリストアップすることは素晴らしいです、そして私が得ることができるものを取り上げますが、あなたの応答に含めることができればそれはさらに役立ちます: (a)あなたがこのGUIを実際に使用したかどうか、そしてそうなら、それについてどのような正/負のフィードバックがありますか。 (b)ご存知の場合、上記の機能のうち、サポートされている機能とサポートされていない機能 リストは簡単に手に入ります。このようなサイトは、人々がアプリケーションを使って個人的な経験をすることができるので、すばらしいものです。
210 c++  linux  gdb  debugging 


8
キャプチャラムダを関数ポインタとして渡す
関数ポインターとしてラムダ関数を渡すことは可能ですか?もしそうなら、私はコンパイルエラーを受け取っているので私は何かを間違ってしているに違いありません。 次の例を考えてみましょう using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn _dec; }; int main() { int x = 5; Decide greaterThanThree{ [x](){ return x > 3; } }; return 0; } これをコンパイルしようとすると、次のコンパイルエラーが発生します。 In function 'int main()': 17:31: error: the value of 'x' is …

5
なぜ符号なし整数オーバーフローは動作が定義されていますが、符号付き整数オーバーフローは定義されていないのですか?
符号なし整数オーバーフローは、CおよびC ++標準の両方で明確に定義されています。たとえば、C99標準(§6.2.5/9)は 結果の符号なし整数型で表すことができない結果は、結果の型で表すことができる最大値よりも1大きい数を法として減じられるため、符号なしオペランドを伴う計算は決してオーバーフローできません。 ただし、どちらの規格も、符号付き整数オーバーフローは未定義の動作であると述べています。ここでも、C99標準(§3.4.3/1)から 未定義の動作の例は、整数オーバーフローでの動作です この矛盾の歴史的または(さらに良い!)技術的な理由はありますか?

30
Linux用のC ++ IDE?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 4年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 プログラミングの視野をLinuxにも広げたいと思っています。優れた信頼できる基本的なツールセットは重要です。IDEよりも基本的なものは何ですか。 私はこれらのSOトピックを見つけることができました: Linux用の軽量IDEおよび LinuxでC ++アプリケーションを開発するには、どのツールを使用しますか? 軽量な IDEを探しているのではありません。IDEがお金に見合う価値があれば、私がそれを支払うので、無料である必要はありません。 私の質問、それから: Linuxで利用できる優れたC ++プログラミングIDEは何ですか? 最小値はかなり標準的なものです。構文の強調表示、コード補完(インテリセンスやそのEclipseの対応など)、統合されたデバッグ(たとえば、基本的なブレークポイント)です。 私は自分で検索しましたが、特にLinuxでC ++コーディングの経験がほとんどない私のような人にとって、良いものと悪いものを手で区別することはほとんど不可能です。私はEclipseがC ++をサポートしていることを知っています。私はそのIDE for Javaが本当に好きですが、C ++に何か良いことはありますか? 2番目の投稿には実際にいくつかの良い提案がありますが、私が見落としているのは、サジェステッドIDEがユーザーにとって非常に優れている理由です。その(欠点)は何ですか? たぶん私の質問はしたがって: どのIDEを提案しますか(あなたの経験を与えてください)、そしてなぜですか?
209 c++  linux  ide 

6
C ++の「long」、「long long」、「long int」、および「long long int」の違いは何ですか?
JavaからC ++に移行していますが、longデータ型についていくつか質問があります。Javaでは、2 32より大きい整数を保持するには、次のように記述しlong x;ます。ただし、C ++では、これはlongデータ型と修飾子の両方です。 いくつかの使用方法があるようlongです: long x; long long x; long int x; long long int x; また、次のようなものがあるようです: long double x; 等々。 これらのさまざまなデータ型の違いは何ですか?それらはすべて同じ目的を持っていますか?
209 c++  long-integer 

17
typeinfoへのg ++​​未定義参照
私は次のエラーに遭遇しました(そして解決策はオンラインで見つかりましたが、Stack Overflowにはありません)。 (.gnu.linkonce。[stuff]):[メソッド] [オブジェクトファイル]への未定義の参照:(。gnu.linkonce。[stuff]): `[クラス名]のtypeinfoへの未定義の参照 ' これらの「typeinfoへの未定義の参照」リンカーエラーの1つが表示されるのはなぜですか? (舞台裏で何が起こっているかを説明できる場合のボーナスポイント。)
209 c++  linker  g++ 

15
言語はどのようにしてそれ自体を拡張しますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 この質問を改善する 私はC ++を学んでおり、GUIプログラムをコーディングするためのQtの機能のいくつかについて学び始めました。私は自分に次の質問をしました: 以前はOSにウィンドウまたはネットワークを介して通信する方法を要求する構文がなかったC ++(私も完全に理解していないAPIを使用しています)は、C ++自体で作成されたライブラリを介してそのような機能をどのようにして突然取得しますか?それはすべて私にはひどく循環しているように見えます。これらのライブラリで考えられるC ++命令はどれですか。 この質問は経験豊富なソフトウェア開発者にとっては些細なことのように思えるかもしれませんが、私は何も直接調査せずに何時間も研究を続けてきました。ライブラリの存在が私には理解できないので、Qtに関するチュートリアルをたどることができなくなりました。

22
C#がC ++スタイルの 'friend'キーワードを提供しないのはなぜですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 この質問を改善する C ++の友人のキーワードが可能にclass A指定するclass Bその友人として。これによりClass B、private/のprotectedメンバーにアクセスできますclass A。 これがC#(およびVB.NET)から除外された理由について、私は何も読んだことがありません。この以前のStackOverflowの質問に対するほとんどの回答は、C ++の有用な部分であり、それを使用する十分な理由があると述べています。私の経験では同意する必要があります。 もう1つの質問friendは、C#アプリケーションと同様のことをする方法を本当に尋ねているようです。答えは一般にネストされたクラスを中心に展開しますが、friendキーワードを使用するほどエレガントではありません。 オリジナルのDesign Patternsブックでは、例全体で定期的に使用しています。 つまり、要約すると、なぜfriendC#に欠けているのか、そしてそれをC#でシミュレートする「ベストプラクティス」の方法とは何でしょうか。 (ちなみに、internalキーワードは同じものではなく、アセンブリ全体のすべてのクラスがinternalメンバーにアクセスfriendできるようにする一方で、特定のクラスに他の1つのクラスへの完全なアクセス権を与えることができます)
208 c#  c++  design-patterns  oop  friend 




11
Internet Explorer拡張機能の開発を開始するにはどうすればよいですか?
ここにいる誰かが、知識を共有できるIE拡張機能の開発経験を持っていますか?これには、コードサンプル、適切なサンプルへのリンク、プロセスのドキュメントなどが含まれます。 私は本当にこれをやりたいのですが、お粗末なドキュメント、お粗末なコード/サンプルコード/その欠如で巨大な壁にぶつかっています。あなたが提供できるどんなヘルプ/リソースも大いに感謝されます。 具体的には、IE拡張機能内からDOMへのアクセス/操作方法から始めたいと思います。 編集、さらに詳細: 理想的には、ツールバーボタンをクリックして、クリックすると外部サイトへのリンクを含むメニューをポップアップするのが理想的です。いくつかの条件に応じて、DOMにアクセスし、JavaScriptをページに配置したいと思います。 IE拡張機能で情報を保持する最良の方法は何ですか?Firefox / Chrome /ほとんどの最新のブラウザではを使用しますwindow.localStorageが、IE8 / IE7では当然、これはオプションではありません。たぶんSQLite DBなど?.NET 4.0がユーザーのコンピューターにインストールされると想定しても大丈夫ですか? IE9と互換性のあるものを作成したいので、Spice IEを使用したくありません。この質問にもC ++タグを追加しました。C++で作成した方がいい場合は、それを実行できるからです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.