記事"自作 DLL の排除"についてのディスカッション - ページ 4 1234 新しいコメント fxsaber 2025.12.11 16:20 #31 Maxim Kuznetsov #:最後のパラメータ(cnt)も64ビットである。これはsize_thttps://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/memcpy-wmemcpy ありがとう。 fxsaber 2025.12.11 16:22 #32 Maxim Kuznetsov #:もちろんそうだ...プロトタイプは4(符号なしintのような32ビットアドレス)からで、コンパイル/実行は5(64ビット)だ。 遅いよ、僕はさっき longs経由で書いたんだ。 #define MEMCPY_MACROS(A) \ long memcpy( const long Destination, const A &Source[], const uint Length ); \ long memcpy( A &Destination[], const long Source, const uint Length ); Edgar Akhmadeev 2025.12.11 16:55 #33 Edgar Akhmadeev #:64ビットのアドレスでポイントを見逃していました。でも、修正したアドレスでもクラッシュしています。本当にうまくいくのでしょうか?修正したfxsaberコードの完全な例を見ることはできますか?WinAPIのアドレスはMQLと互換性がありません。 私は間違いを見つけました。私はタイプミスをしました。 私の意見は変わりました。 Edgar Akhmadeev 2025.12.11 18:11 #34 ちなみに、MSはmemcpy 関数を安全ではなく時代遅れとみなし、代わりにmemcpy_sを提案している。その上、最初のパラメータはconstではない。だから結果はこうなる: #define DEF_MEMCPY_S(T) \ ulong memcpy_s(T &dst, ulong size, const ulong src, ulong cnt); \ ulong memcpy_s(T &dst[], ulong size, const ulong src, ulong cnt); \ ulong memcpy_s(T &dst, ulong size, const T &src[], ulong cnt); \ ulong memcpy_s(T &dst[], ulong size, const T &src[], ulong cnt); #import "msvcrt.dll" DEF_MEMCPY_S(char) DEF_MEMCPY_S(uchar) DEF_MEMCPY_S(int) DEF_MEMCPY_S(uint) DEF_MEMCPY_S(long) DEF_MEMCPY_S(ulong) #import void OnStart() { int Array[]; ArrayResize(Array, 1); Array[0] = 123; int Value1 = 0; int Value2 = 0; ulong Address = memcpy(Array, 0, 0); memcpy_s(Value1, sizeof(int), Address, sizeof(int)); memcpy_s(Value2, sizeof(int), Array, sizeof(int)); Print(Value1, " ", Value2); } Denis Kirichenko 2025.12.11 23:39 #35 興味深い例通の方に質問です。任意のクラスのベクトル、行列、オブジェクトのアドレスを取得することは可能ですか? Maxim Kuznetsov 2025.12.12 04:23 #36 Denis Kirichenko #:興味深い例通の方に質問です。任意のクラスのベクトル、行列、オブジェクトのアドレスを取得することは可能ですか? いいえ 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
最後のパラメータ(cnt)も64ビットである。これはsize_t
https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/memcpy-wmemcpy
ありがとう。
もちろんそうだ...プロトタイプは4(符号なしintのような32ビットアドレス)からで、コンパイル/実行は5(64ビット)だ。
遅いよ、僕はさっき longs経由で書いたんだ。
64ビットのアドレスでポイントを見逃していました。でも、修正したアドレスでもクラッシュしています。本当にうまくいくのでしょうか?修正したfxsaberコードの完全な例を見ることはできますか?
WinAPIのアドレスはMQLと互換性がありません。
私は間違いを見つけました。私はタイプミスをしました。
私の意見は変わりました。
ちなみに、MSはmemcpy 関数を安全ではなく時代遅れとみなし、代わりにmemcpy_sを提案している。その上、最初のパラメータはconstではない。だから結果はこうなる:
興味深い例通の方に質問です。任意のクラスのベクトル、行列、オブジェクトのアドレスを取得することは可能ですか?
興味深い例通の方に質問です。任意のクラスのベクトル、行列、オブジェクトのアドレスを取得することは可能ですか?
いいえ