DLLをアンロードする方法 - ページ 6 123456789101112 新しいコメント Evgeniy Logunov 2009.08.29 17:06 #51 VBAG писал(а)>>メイン機能のプロトタイプが正しく選択されているか? ATTACH/DETACHスレッドを管理する方法は? このことについて、どこで読めばいいのか、できれば実例があるといいのですが。 Jeffrey Richter "Windows for Professionals". Hide 2009.08.29 17:08 #52 VBAG >> : 皆様にご挨拶申し上げます。 この話題が面白くなって、ターミナルに付属している簡単なサンプル(DLLSampleプロジェクト)で、議論されている内容を確認することにしました。 VS 6.0でコンパイルした後、焼いたDLLはターミナルで正常に動作しますが、自分自身をアンロードすることはできません なぜ、アンローディングでないことがわかるのですか?私のDLLSampleは問題なく動作しています。 Владимир 2009.08.29 17:43 #53 HideYourRichess писал(а)>> なぜ、アンローディングでないことがわかるのですか?私のDLLSampleは問題なく動作しています。 間接的には、端末を閉じるまでdllファイルの本体は上書きされません。 . グローバルレベルで宣言された静的配列がいくつかあるのですが、もしかしたらそれが影響しているのかもしれません。 . プロジェクトを正しくチューニングする方法を理解し、私が言うところのattach/detachを「丁寧に」処方したいのです。 Владимир 2009.08.29 17:44 #54 lea писал(а)>> ジェフリー・リヒター "プロフェッショナルのためのウィンドウズ" ありがとうございます、拝見させていただきます。 削除済み 2009.08.29 17:50 #55 VBAG >> : 皆様にご挨拶申し上げます。 この話題が面白くなって、ターミナルに付属している簡単なサンプル(DLLSampleプロジェクト)で、議論されている内容を確認することにしました。 VS 6.0でコンパイルした後、焼いたDLLはターミナルで正常に動作しますが、自分自身をアンロードすることはできません 以下、主な機能を紹介します。 WindowsでDLLがどのように動作しているかを理解し、VS 6.0(例)のプロジェクトで正しくコンパイルする方法を知っている通の方に質問です。 main関数のプロトタイプは正しいですか? ストリームATTACH/DETACHを管理するには? できれば例文付きで読みたいのですが、どこで読めますか? アタッチとは?dtachって何?何言ってるんですか、普通のDLLにあるDllMain関数なんて全然必要ないじゃないですか。リンカがあなたの代わりにDLLに挿入します。 http://msdn.microsoft.com/en-us/library/2kzt1wy3(VS.80).aspx /MD、/MT、/LD (ランタイムライブラリ使用) /LD DLLを作成します。 リンカに /DLL オプションを渡します。リンカは DllMain 関数を探しますが、必須ではありません。DllMain関数を書かない場合、リンカーはTRUEを返すDllMain関数を挿入します。 DLL起動コードをリンクします。 http://msdn.microsoft.com/en-us/library/ms682583(VS.85).aspx DllMainコールバック関数 ダイナミックリンクライブラリ(DLL)への任意のエントリポイント Hide 2009.08.29 17:59 #56 VBAG >> : 間接的には、ターミナルを閉じるまでdllファイルの本体は上書きされません。 . しかし、私はグローバルレベルで宣言されたいくつかの静的配列を持っており、多分それはそれに影響を与えます。 では、先ほど主張されていたように、実際にはDLLSampleは持っていないのですね。 VBAG>>: アタッチ/デタッチをそのまま書くために、プロジェクトを「丁寧に」チューニングする方法を理解したいと思います。 Владимир 2009.08.29 18:27 #57 HideYourRichess писал(а)>> では、先ほど主張されていたように、実際にはDLLSampleは持っていないのですね。 まあ、一般的には、明示的にDllMainを使用すれば、そうなります。また、一般的に、プロジェクトの設定はすべてサンプラーから行う必要があります。DllMainを明示的に記述することを推奨していますが、Delphiで記述する場合は、DllMainを記述せず、attach/detachを 全て初期化・確定に入れることができます。 グローバルレベルで2つの静的配列を追加した以外は、すべてDLLSampleから引用しています。 テスターで動かしているEAでプリミティブ関数を呼び出しています。テストが終了すると、DLLはメモリに保持されます。こんな状況です。 Hide 2009.08.29 18:37 #58 VBAG >> : グローバルレベルで2つの静的配列を追加した以外は、すべてDLLSampleから引用しています。 テスターで動かしているEAでプリミティブ関数を呼び出しています。テストが終了すると、DLLはメモリに保持されます。こんな状況です。 嗚呼、テスターで問題が発生するんですね。スクリプトでもなく、インジケーターでもない、Expert Advisorです。さて、このEAはテスターではなく、通常の状態ではどのような挙動をするのでしょうか? ちなみに、理論上「グローバルレベルで2つの静的配列を持つ」ことは、DLLに何ら影響を与えないはずです。特に、DLLを使ってアクセスすることが全くない場合は。 面白いですね。私の投稿で、削除していないのに、返信していた文章が一部消えています。フォーラムに不具合がある。 Андрей 2009.08.29 19:07 #59 HideYourRichess >> : 嗚呼、テスターで問題が発生するんですね。しかも、スクリプトでもインジケーターでもない、EAなんです。さて、このEA、テスターではない通常の状態ではどのような挙動を示すのでしょうか。 実は、1年前のEA-でも、DLLでこのような問題がありました。 テスターのランをシステムのものと照らし合わせてみました。 しかし...誰かが何度か、手が曲がっているとか、プログラムに間違いがあるとか、みんなを貶めることに成功した。 そんな上司がいるなんて......。 追伸:ランタイムライブラリでDLLをポリンキングしたVC2005:インジケータとスクリプトの後。 >> 全てが正常にアンロードされます。 Hide 2009.08.29 19:16 #60 jartmailru >> : 実は、1年前のEA-でも、DLLでこのような問題がありました。 テスターのランをシステムのものと照らし合わせてみました。 しかし......誰かが何度か、手が曲がっているとか、プログラムに誤りがあるとか、みんなを貶めることに成功したのです。 そんな上司がいるなんて......。 追伸:VC2005のランタイムライブラリでDLLをポリンクしました:インジケータとスクリプトの後です。 はすべて正常にアンロードされます。 改めて、どこのDLLでも問題ないですね。もし問題があれば、それはあなたのプログラミングの問題で、おそらくMSやMTのせいではありません。そして、"古い "VCを使う必要があるということ、それは明らかでしょう。 123456789101112 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
メイン機能のプロトタイプが正しく選択されているか?
ATTACH/DETACHスレッドを管理する方法は?
このことについて、どこで読めばいいのか、できれば実例があるといいのですが。
Jeffrey Richter "Windows for Professionals".
皆様にご挨拶申し上げます。
この話題が面白くなって、ターミナルに付属している簡単なサンプル(DLLSampleプロジェクト)で、議論されている内容を確認することにしました。
VS 6.0でコンパイルした後、焼いたDLLはターミナルで正常に動作しますが、自分自身をアンロードすることはできません
なぜ、アンローディングでないことがわかるのですか?私のDLLSampleは問題なく動作しています。
なぜ、アンローディングでないことがわかるのですか?私のDLLSampleは問題なく動作しています。
間接的には、端末を閉じるまでdllファイルの本体は上書きされません。
.
グローバルレベルで宣言された静的配列がいくつかあるのですが、もしかしたらそれが影響しているのかもしれません。
.
プロジェクトを正しくチューニングする方法を理解し、私が言うところのattach/detachを「丁寧に」処方したいのです。
ジェフリー・リヒター "プロフェッショナルのためのウィンドウズ"
ありがとうございます、拝見させていただきます。
皆様にご挨拶申し上げます。
この話題が面白くなって、ターミナルに付属している簡単なサンプル(DLLSampleプロジェクト)で、議論されている内容を確認することにしました。
VS 6.0でコンパイルした後、焼いたDLLはターミナルで正常に動作しますが、自分自身をアンロードすることはできません
以下、主な機能を紹介します。
WindowsでDLLがどのように動作しているかを理解し、VS 6.0(例)のプロジェクトで正しくコンパイルする方法を知っている通の方に質問です。
main関数のプロトタイプは正しいですか?
ストリームATTACH/DETACHを管理するには?
できれば例文付きで読みたいのですが、どこで読めますか?
アタッチとは?dtachって何?何言ってるんですか、普通のDLLにあるDllMain関数なんて全然必要ないじゃないですか。リンカがあなたの代わりにDLLに挿入します。
http://msdn.microsoft.com/en-us/library/2kzt1wy3(VS.80).aspx
/MD、/MT、/LD (ランタイムライブラリ使用)
/LD
DLLを作成します。
リンカに /DLL オプションを渡します。リンカは DllMain 関数を探しますが、必須ではありません。DllMain関数を書かない場合、リンカーはTRUEを返すDllMain関数を挿入します。
DLL起動コードをリンクします。
http://msdn.microsoft.com/en-us/library/ms682583(VS.85).aspx
間接的には、ターミナルを閉じるまでdllファイルの本体は上書きされません。
.
しかし、私はグローバルレベルで宣言されたいくつかの静的配列を持っており、多分それはそれに影響を与えます。
では、先ほど主張されていたように、実際にはDLLSampleは持っていないのですね。
アタッチ/デタッチをそのまま書くために、プロジェクトを「丁寧に」チューニングする方法を理解したいと思います。
では、先ほど主張されていたように、実際にはDLLSampleは持っていないのですね。
まあ、一般的には、明示的にDllMainを使用すれば、そうなります。また、一般的に、プロジェクトの設定はすべてサンプラーから行う必要があります。DllMainを明示的に記述することを推奨していますが、Delphiで記述する場合は、DllMainを記述せず、attach/detachを 全て初期化・確定に入れることができます。
グローバルレベルで2つの静的配列を追加した以外は、すべてDLLSampleから引用しています。
テスターで動かしているEAでプリミティブ関数を呼び出しています。テストが終了すると、DLLはメモリに保持されます。こんな状況です。
グローバルレベルで2つの静的配列を追加した以外は、すべてDLLSampleから引用しています。
テスターで動かしているEAでプリミティブ関数を呼び出しています。テストが終了すると、DLLはメモリに保持されます。こんな状況です。
嗚呼、テスターで問題が発生するんですね。スクリプトでもなく、インジケーターでもない、Expert Advisorです。さて、このEAはテスターではなく、通常の状態ではどのような挙動をするのでしょうか?
ちなみに、理論上「グローバルレベルで2つの静的配列を持つ」ことは、DLLに何ら影響を与えないはずです。特に、DLLを使ってアクセスすることが全くない場合は。
面白いですね。私の投稿で、削除していないのに、返信していた文章が一部消えています。フォーラムに不具合がある。
嗚呼、テスターで問題が発生するんですね。しかも、スクリプトでもインジケーターでもない、EAなんです。さて、このEA、テスターではない通常の状態ではどのような挙動を示すのでしょうか。
実は、1年前のEA-でも、DLLでこのような問題がありました。
テスターのランをシステムのものと照らし合わせてみました。
しかし...誰かが何度か、手が曲がっているとか、プログラムに間違いがあるとか、みんなを貶めることに成功した。
そんな上司がいるなんて......。
追伸:ランタイムライブラリでDLLをポリンキングしたVC2005:インジケータとスクリプトの後。
>> 全てが正常にアンロードされます。
実は、1年前のEA-でも、DLLでこのような問題がありました。
テスターのランをシステムのものと照らし合わせてみました。
しかし......誰かが何度か、手が曲がっているとか、プログラムに誤りがあるとか、みんなを貶めることに成功したのです。
そんな上司がいるなんて......。
追伸:VC2005のランタイムライブラリでDLLをポリンクしました:インジケータとスクリプトの後です。
はすべて正常にアンロードされます。
改めて、どこのDLLでも問題ないですね。もし問題があれば、それはあなたのプログラミングの問題で、おそらくMSやMTのせいではありません。そして、"古い "VCを使う必要があるということ、それは明らかでしょう。