問題タブ [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.

0 投票する
3 に答える
2050 参照

c++ - Nintendo DS Homebrew のアルファ ブレンディング スプライト

スプライトと背景をdevkitPro (libnds、libarm などを含む) でアルファ ブレンドしようとしています。

誰もこれを行う方法を知っていますか?

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

c++ - GUI を作成するにはどうすればよいですか?

ボタン、テキストボックス、セレクトボックスなど、ニンテンドーDS用のGUIシステムのさまざまな部分を作成しましたが、これらのクラスを1つのGuiクラスに含める方法が必要です。一度、すべてのボタンを一度にチェックして、押されているかどうかを確認します。私の質問は、すべてのクラス (ボタンやテキスト ボックスなど) を 1 つの GUI クラスに編成する最良の方法は何ですか?

これが私が考えた1つの方法ですが、正しくないようです:

編集: C++を使用しています。

このコードにはいくつか問題があります。

0 投票する
12 に答える
15459 参照

c++ - メモリ管理、ヒープ破損、およびC ++

だから、私はいくつかの助けが必要です。私はC++でプロジェクトに取り組んでいます。しかし、どういうわけかヒープを壊してしまったと思います。std::stringこれは、クラスにを追加し、別のクラスから値を割り当てたという事実に基づいていstd::stringます。

スタックダンプでシステムがクラッシュします。したがって、基本的には、コードとメモリ管理のすべてを停止して調べ、どこで失敗したかを見つける必要があります。コードベースはまだ小さい(約1000行)ので、これは簡単に実行できます。

それでも、こういうのは頭がおかしいので、捨てようと思いました。私はLinuxシステムを使用していて、をいじくり回しましvalgrindた。私が何をしているのか完全にはわかりませんstd::stringが、のデストラクタは無効なフリーであると報告されました。Google検索から「ヒープの破損」という用語を取得したことを認めなければなりません。この種のものに関する一般的な目的の記事も同様にいただければ幸いです。

(前にrm -rf ProjectDir、C#でもう一度やり直してください:D)

編集:私はそれを明確にしませんでしたが、私が求めているのは、この種のメモリの問題を診断するためのアドバイスです。std :: stringのものが正しいことを知っているので、それは私がやったことです(またはバグですが、Selectに問題はありません)。私が書いたコードをチェックでき、非常に賢い人ならすぐに問題を見つけることができると確信していますが、この種のコード分析を私の「ツールボックス」に追加したいと思います。

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

c++ - 失敗時にスローされる関数のテスト

失敗時にスローされる関数をテストする最良の方法は何ですか? または、障害の影響をかなり受けない機能をテストしますか?

例えば; I/O Completion Portポートを正しく初期化できない場合にコンストラクターをスローするクラスがあります。これは、イニシャライザ リストのWin32関数を使用します。CreateIoCompletionPortハンドルが正しく設定されていない場合 (null 以外の値)、コンストラクターは例外をスローします。この関数が失敗するのを見たことがありません。

これ(および私のコード内の同様の他の関数)が失敗した場合、コードは空白を含めて50行の長さであるため、私の質問は

a)それがスローされることをテストする価値は
ありますか b)テストする価値がある場合、どのように?
c) 単体テストが必要なため、単純なラッパー クラスを使用する必要がありますか?

CreateIoCompletionPortb) については、値をオーバーライドして渡すことを考えました。単体テストではそれをオーバーライドし、特定の値が渡されたときに 0 を返すようにします。ただし、これはコンストラクターで使用されるため、これは静的である必要があります。これは有効に見えますか?

0 投票する
3 に答える
11398 参照

c++ - Windows C++: fprintf への呼び出しで stderr をリダイレクトするにはどうすればよいですか?

BSDプロジェクトの既存の C++ コードを独自のカスタム ラッパーでラップしており、できるだけ少ない変更でコードに統合したいと考えています。このコードはfprintf、エラーを記録/報告するためにstderrに出力するために使用します。

これを同じプロセス内の別の場所にリダイレクトしたい。Unix では、これを asocketpairと a で実行しましたthread。ソケットの一方の端は(への呼び出しを介して) stderrdup2を送信する場所であり、もう一方の端はスレッドで監視され、そこで出力を処理できます。

ただし、ソケットはファイル ハンドルと同じではないため、これはWindows では機能しません。

Web で見つけたすべてのドキュメントは、子プロセスからの出力をリダイレクトする方法を示していますが、これは私が望んでいるものではありません。出力が書き込まれるときに何らかのコールバックを取得する同じプロセス内でstderrをリダイレクトするにはどうすればよいですか? (そして、あなたがそう言う前に、私は試しましSetStdHandleたが、これを機能させる方法を見つけることができません)...

0 投票する
9 に答える
154996 参照

c++ - C ++でファイルを開くにはどうすればよいですか?

C ++の方法で、読み取り用にファイルを開きたい。私はそれをすることができる必要があります:

  • ある種の読み取り行機能を含むテキストファイル。

  • バイナリファイル。生データをchar*バッファに読み込む方法を提供します。

0 投票する
3 に答える
2740 参照

c++ - デバッガーにファーストチャンス例外の中断を停止させることができません

Visual C ++ 2003を使用して、TCP/IPを介してプログラムをリモートでデバッグしています。

Win32例外c00000005「アクセス違反」を設定して、スローされたときにデバッガーに侵入しました。次に、「親設定を使用する」に戻します。親のWin32Exceptionsの設定は、例外がスローされたときに続行することです。

これで、プログラムをデバッグすると、例外がスローされるたびにプログラムが中断し、[続行]をクリックしてデバッグを続行する必要があります。このように壊れないようにするにはどうすればよいですか?

0 投票する
6 に答える
1365 参照

c++ - MSVC6:ブレークポイントがプログラムを停止します

Microsoft Visual Studio 98、Microsoft Visual C ++6.0SP6を使用

デバッガーで実行する場合、問題は1つだけです。プログラムを一時停止して再開すると、すべて問題ありません。

問題?ブレークポイントに到達すると、プログラムが停止します。しかし、良い方法ではありません。実行が停止し、デバッグモードから編集モードになります。ブレークポイントに到達するまでは問題ありません。そして、それがブレークポイントに到達していることを知っています-コードの正しい行を指す小さな黄色の矢印のフラッシュ、検査ウィンドウのローカル変数、およびそのウィンドウの呼び出しスタックが表示されます。そして、私は編集者を見つめています。

これはすべてのプロジェクトで発生します。

MSVC6をアンインストールして再インストールしました。それは役に立たなかった。

新しいPCで最初からやり直そうとしています。私がそこまで行く前に、誰かが私がこれに何をしたか知っていますか?


注:MSVC6は私の選択ではありませんが、理由があります。それは私が使っているツールです。また、NT4をターゲットにするため、2008年はNT4をターゲットにできず、2005年はMFCとNT4に問題があり、MSVC6は問題があります。

0 投票する
13 に答える
8511 参照

c++ - C++ のセキュア メモリ アロケータ

次の属性を持つメモリを提供するアロケータを作成したいと考えています。

  • ディスクにページングできません。
  • 接続されたデバッガーからアクセスするのは非常に困難です

これには、ユーザーがアクセスできない機密情報 (ライセンス情報など) が含まれるという考えです。私はオンラインで通常の調査を行い、これについて他の何人かの人々に尋ねましたが、この問題を開始するのに適した場所を見つけることができません.

アップデート

JoshVirtualAllocは、メモリ空間に保護を設定するために使用することについて言及しています。カスタム アロケータを作成しました (以下を参照) 。このVirtualLock関数を使用すると、割り当てることができるメモリの量が制限されることがわかりました。ただし、これは仕様によるものと思われます。私は小さなオブジェクトに使用しているので、これは問題ではありません。

と使用されます

Ted Percivalは mlock について言及していますが、私はまだそれを実装していません。

Neil Furguson と Bruce SchneierによるPractical Cryptographyも非常に役に立ちました。

0 投票する
13 に答える
59039 参照

c# - Memcached を Windows (x64) 64 ビット環境で実行できますか?

Windows 64 ビット環境で Memcached を実行できるIF いつ、またはどのようにすればよいか知っている人はいますか?

私は新しいホスティング ソリューションをセットアップしていますが、64 ビット OS を実行したいと考えています。これは SQL Server DB を使用した ASP.Net MVC ソリューションであるため、OS は Windows Server 2003 または (願わくば!) 2008 のいずれかになります。

これが、サーバー上で 32 ビットと 64 ビットのどちらを使用するかについての議論に波及する可能性があることは承知していますが、私の好みは 64 ビットであり、いくつかの非常に 正当な理由があるとだけ言っておきましょう。

これまでのところ、いくつかのオプションを試してみて、32 ビット マシンでこれを起動することに関連する少しヘルプを見つけました(追加することもできます)。ただし、元のWindows ポートは Win32 固有であるため、これはほとんど役に立ちません。 x64 でサービスとしてインストールする場合。また、Win32 でコンパイルされたバージョンしか入手できないlibeventにも依存しています。

I suspect that simply loading all this up in C++ and hitting "compile" (for 64bit) wouldn't work, not least because of the intricate differences in 32 and 64bit architectures, but I'm wondering if anyone is working on getting this off the ground? Unfortunately, my expertise lie in managed code (C#) only, otherwise I would try and take this on myself, but I can't believe I'm the only guy out there trying to get memcached running on a 64 bit Windows server....am I?


Update

はい、私はまだこれに対する答えを探しています - 安定したビルドを作成するための私のすべての努力 (私の哀れな C++ スキルによる) は失敗しました - 私は 1 台のサーバーと 3 台の VM をただ試しただけなので、今私は本当の専門家に相談してください。これを64ビットに移植する予定の人はいますか? それとも、代わりに MS Velocity を使用することを本当に提案していますか? 私はその考えに震えます。


更新: @Lars - 私は実際に Enyim を使用しています - それは非常に優れていますが、あなたが言及しているのはサーバー部分ではなくクライアントです。

@DannySmurf - 32 ビット OS のサービスとしてしかインストールできませんでした。64 ビット OS は、この Win32 サービスのインストールを拒否します。もちろん、多くの Win32 コードは x64 アーキテクチャ上でシームレスに動作するため、32 ビット アプリ (Office など) やゲームを Vista/XP 64 などで実行できますが、サービスに関しては直接変換されません。私は専門家ではありません。サービスがサブスクライブする必要がある同期またはイベントに関係していると思われます。また、64 と 32 がうまく動作しないのではないかと思います。これについて修正できてうれしいですが、あなたの質問に答えるために-はい、試しました。

@OJ - 率直な回答に感謝します。私も同じように考えましたが、他の誰かが提案を持っているかどうか、またはすでにこのルートをたどったかどうかはわかりませんでした. おそらく、StackOverflow が LIVE になると、より多くの人が応答して、これが調査中のものであるかどうかを知らせてくれるでしょう。自分で試してコンパイルすることはできますが、(C++ の経験レベルでは) それを「信頼」することはできません。大規模でスケーラブルなソリューションのこのような重要なコンポーネントに「エンタープライズ レベル」の信頼性を提供します。自信を持つ前に、無害な実験的アプローチではなく、教育を受けた介入が必要になると思います. 私のちょっとした見落としで、サイトがダウンする可能性があります。ま、まぁ・・・次回まで。