問題タブ [afx]

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

c++ - 別の DLL からの未解決の外部静的データ メンバー

クラスをFrom.dll定義するライブラリの次のソースを検討してください。From

ヘッダ:

実装:

このライブラリの静的メンバーstaticMemberは、次のToクラスから使用する必要があり、DLL ( To.dll)も生成する必要があります。

ヘッダ:

実装:

しかし、それがVisual Studio上に直接あるか、それがcmakeで生成されたnmakeであるかに関係なくLNK2001: unresolved external symbol "public: static char const * const From::staticMember" (?staticMember@From@@2QBDB)、リンクするときにこれを取得し続けます:To.dll

最初の DLL はコンパイルされ、問題なくリンクされています。以下は、私の CMakeLists.txt の関連部分です。

この静的データ メンバーをエクスポートするのに何が間違っていますか?

0 投票する
0 に答える
245 参照

c++ - MS Visual C++ マルチスレッドで割り当てられた変数にアクセスすると、アクセス違反が発生する

MSVC 2013 でビルドされた MFC ダイアログ ベースのアプリケーションに問題があります。より複雑な機能の実行中にもメイン ダイアログにアクセスできるようにするために、マルチスレッドを使用しています。ダイアログ内のボタンをクリックすると、別のスレッドによって実行される「ワーカー関数」が呼び出されます。

クラスの抜粋を次に示します。

ボタンをクリックすると、StartSweepAndImageThreadそれ自体が呼び出しSweepAndImageThreadProc、最後にが呼び出されますDoSweepAndImage。functionDoSweepAndImageでは、クラスの変数にアクセスします (読み取りと書き込み)。などがありimgs_nameます。使用法は次のとおりです。

whileimgs_nameは次のように初期化されます

OnInitDialog関数で。

問題は、私が受け取る言及ボタンを押すと

丁度上imgs_name[i] = str;CString *imgs_name;I defineの代わりに静的配列を使用するCString imgs_name[4];と、すべてがうまく機能します。CStringただし、その変数を動的変数にしたいと考えています。よろしくお願いします。

PS: これをシリアルに評価したとき、つまりDoSweepAndImageメイン スレッドで関数を実行したときは、すべてうまくいきました。そのため、アクセス違反はマルチスレッドが原因であると想定しています。

@Wimmel : ループオーバーiDoSweepAndImage

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

multithreading - コントロールを変更するための AfxBeginThread() PostMessage

listcontrol データを変更するためにメイン ダイアログに postmessage を送信する必要がある AfxBeginThread() を使用するプログラムがあります。

変更したいテキストと要素の変更テキストを渡す必要があるため、どうすればそれを達成できますか? どうすればいいですか?

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

debugging - MFC アプリで DEBUG_NEW を設定するとコンパイラ エラーが発生する理由

ここでは、MFC アプリで new の代わりに DEBUG_NEW を配置できることを示しています。そうすると、コンパイラは DEBUG_NEW が定義されていないと言います。VS 2017です。_DEBUGが定義されています。何が間違っている可能性がありますか?

[編集] 最初に、プロジェクト全体のグローバルな定義として配置したことに注意してください。何千ものエラーがありました (これは大きなプロジェクトです)。次に、1 つのオカレンスだけを変更しました。私のコードにあったもの。そして、それは機能していません。含まれていますが、直接ではありません