問題タブ [thunk]

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

c++ - LinuxでC++サンクを実装できますか?

クラスメンバー関数をコールバックとして使用したいのですが、遅いのでlibsigcは使用しません。ATLでは、Cスタイルのコールバック(http://www.codeproject.com/KB/cpp/SoloGenericCallBack.aspx)のメンバー関数を使用できるので、LinuxでC ++サンクを実装できますか?

以下のコードはクラッシュします:

編集:user786653のおかげで、私は正しい答えを得る:

0 投票する
2 に答える
837 参照

visual-c++ - DEP との ATL の非互換性は修正可能ですか?

ATL はサンクを使用してウィンドウのコールバックを管理しますが、データの実行を許可する必要があるようです。

マイクロソフトは次のように述べています

システム DEP ポリシーは上書きできることに注意してください。DEPAlwaysOnを使用すると、属性に関係なく、ATL サンク エミュレーションが無効になります。

この引用を (多かれ少なかれ) 「システム ポリシーが原因で ATL アプリケーションがクラッシュする可能性がある」に翻訳するのは正しいですか?

ATL-8.0 より前のアプリケーションを任意のシステムで正しく動作させる方法はありますか?

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

python - 標準ライブラリに他のキューはありますか?

待ち行列に入れたい

後で電話/待機するため。次に、一時停止したポペンスにさらにいくつかをキューに追加し、それらを再び消費します。

メインのキューモジュールは同期を重視しているため、APIが場所によっては少し奇妙に感じられます。私は同期を気にしません(シングルスレッドプログラム、Popenは彼らの仕事をし、エラー時に例外をスローします、そしてそれらは重要な方法で環境に影響を与えません(それらはファイルを生成します)

後で追加するジェネレーターを使用する必要があります。もしそうなら、ジェネレータにアイテムを追加する良い方法は何ですか、

毎回無駄に思えます。

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

haskell - Haskellのすべては、単純な値でさえ、サンクに保存されていますか?

次の値/式/関数のサンクは、Haskellヒープではどのように見えますか?

遅延評価モードを考えると、これらがHaskellでどのように表現されているかを把握しておくと便利です。

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

windows - ESPの値が適切に保存されていませんでした....およびC/C++の呼び出し規約

私は、OpenCVライブラリ、Boostライブラリ、およびこのLINKからダウンロードした一連のコードを使用してアプリケーションを作成しています。Thunk32と同じソリューションでプロジェクトを作成しましたが、次のファイルがあります。

MainProject.cpp

Window.h

およびWindow.cpp

これを実行すると、ウィンドウ内でマウスを動かさなくても問題なく、コールバックがcvSetMouseCallback関数に正常に渡されます。cvSetMouseCallback関数には、1。ウィンドウの名前、2。CvMouseCallback、およびNULL文字の3つのパラメーターがあります。CvMouseCallbackは次のように定義されます

CV_CDECLは、_cdecl呼び出し規約の単なる再定義です。

これで、私のmouseHandler関数はクラスメンバー関数になりました。これは_thiscall呼び出し規約に準拠していると思います。

私の質問は、マウスをウィンドウに置いたときに、少なくとも1回はメソッドに入ることができたのに、なぜ次のエラーが発生するのかということです。マウスが窓の中で動いた瞬間に変化があると思います。誰か助けてくれませんか?

これが私がしていることの画像です:

エラーと結果のある画像

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

delphi - メソッドをコールバックとしてWindowsAPI呼び出しに渡す方法(フォローアップ)?

この投稿は、 Ranによってここに投稿された関連する質問のフォローアップです。

受け入れられた答えは、通常の単純な古い関数の使用に固執します。

この抜粋は特に私の注意を引きます:

インスタンスメソッドには、インスタンス参照、つまりSelfを含む追加の暗黙的なパラメータがあります。

一種の「パラメーター」アダプターを使用する方法があるべきであるという確固たる信念を持って(言い換えると、不要な自己暗黙の参照を取り除き、準拠する適応コールバック関数へのポインターを提供するため)、私はCallbackというタイトルのこの記事を見つけることになりますピーターモリスによるクラス

要約すると、彼は適応トリックとしてサンクテクニックを使用しています。(免責事項:私はコードをテストしたことがありません)。

私はそれが解決策としてあまりきれいではないことを知っていますが、それはすべての想定される利点を備えたオブジェクト指向デザインを可能にします。

私の質問:

TCallbackThunkがコールバック関数のシグネチャに基づいていることを知っているので、Peter Morrisが行ったようにそれを行うことが道である場合、上記の投稿の答えは何でしょうか?

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

iphone - iOS での「非仮想サンク ....」エラー

iPhone アプリで、次のエラーが表示されます。

エラーが発生したポイントは次のとおりです。

この問題の解決策をグーグルで検索したところ、このリンクで何かを得ました。そして、このエラーは「コンパイラのバグ」であると書かれています。デバッグ モードをリリースに変更してテストしましたが、まだ問題があります。何か案が?この問題は iPhone 4S でのみ発生しています。iPhone 3GS では正常に動作しています。

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

64-bit - Explorer.exe のサンク データの読み取り

explorer.exe で IAT フックを少し実行しようとしています。仕様: Windows 7 x64、Visual C++。C:\Windows\Explorer.exe 以外の実行可能ファイルからサンク データを読み取ることができるようになりました。それに対してプログラムを実行すると、その実行可能ファイルからメモリを読み取るときにアクセス違反が発生します。ただし、これを C:\Windows\system32\Explorer.exe および C:\Windows\sysWOW64\Explorer.exe に対して実行すると、問題は発生しません。どうしてこれなの?C:\Windows\Explorer.exe は、他の explorer.exe の 1 つへの何らかのシンボリック リンクですか? このファイルを読めない原因は何ですか?

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

c - アプリケーション プログラマがサンクからポインタを作成できるオペレーティング システムはありますか?

多くのオペレーティング システムでは、マップ ファイルをメモリに保存し、遅延して読み取ることができます。オペレーティング システムがこれを行うことができれば、サンクから通常のポインタを作成する力が効果的に得られます。

アプリケーション プログラマが自分のサンクからポインタを作成できるオペレーティング システムはありますか?

パイプを作成し、それをメモリにマップし、プロセスをパイプに接続して、私が話していることのいくつかを達成できるため、限られた範囲でオペレーティングシステムがすでにこの機能をサポートしていることを知っているので、この機能はあまりないようです不可能または不合理。

この機能の簡単な例は、逆参照された回数をカウントするポインターです。次のプログラムは、0 を出力し、次に 1 を出力します。

PS x が指す値が予期せず変更されるため、volatile 修飾子が必要です。同様に、x を逆参照するとカウンターが変更されるとコンパイラが考える理由がないので、そこにも volatile が必要ですか?

0 投票する
2 に答える
2390 参照

c++ - x86 と x64 で関数をサンクする方法は? (C++ の std::bind に似ていますが、動的です)

x86 と x64 で、任意の (固定の) 数の引数を持つ任意の関数をサンクするにはどうすればよいですか?

(浮動小数点、SSE などは必要ありません。引数はすべて整数またはポインターです。)