MQL5では、常に悪用される可能性があるのです。 ;) - ページ 7 123456789 新しいコメント TheXpert 2016.12.26 10:05 #61 o_O:memcpy は使えますか? --- 2016.12.26 10:21 #62 Комбинатор: memcpy は使えますか?ノー) もし、SendParamを呼び出す前に何らかの準備をしなければならないのであれば、intをCIntクラスでラップするのが簡単です。 TheXpert 2016.12.26 10:27 #63 o_O:ポインターの取り方はネイティブではありません。というか、最初からCIntラッパーを使わないと、ポインタの扱いに苦労しますよ。まあ、プラスアルファで言えば、料理もするわけですからね。void f(int* value){ //do something}{ int x = 5; f(&x);}アドレスを取るのは準備です。代わりになるのはf(GetPtr(x)) に加えて,型も渡さなければなりません. Alexander Gandzyuk 2016.12.26 16:11 #64 o_O:クラスに関数があるとします。SendParam(int type, void* param)で,パラメータの型(type)とパラメータ自身,あるいはパラメータへのポインタ(void*)が渡されます。パラメータは任意の型(クラスまたは単純型)でよい。パラメータは任意の型(クラスまたは単純型)でよい。 何が問題なのか、法的空白。 template<typename T> void SendReceiveParam(T& param)。....{ double dval = 10; SendReceiveParam(dval)とする。 int ival = 10; SendReceiveParam(ival)...// 構造体オブジェクトの参照 struct AAA { void operator=(int a) {}.}; AAA struct_val。 SendReceiveParam(struct_val)。} intポインタを介して不正なものを書き込む? fxsaber 2016.12.26 18:52 #65 やはり問題文が理解できない。どうやら例題にも、何を実現したいのかが明確に書かれていないようです。 --- 2016.12.26 19:04 #66 fxsaber: 問題の状態がまだよくわからない。どうやら、例のものでも、何を得たいのかが明確に定式化されていないようです。void*パラメータにint型へのポインタを渡そうとしたことは、すでに2回書きました。(memcpy と中間クラスのオプションは既に提案されているので、繰り返す必要はない)。 fxsaber 2016.12.26 19:09 #67 o_O:void*パラメータにint型へのポインタを渡そうとしたことは、すでに2回書きました。 (memcpy、中間クラスのオプションは既に提案されているので、繰り返す必要はありません) くそっ、少なくともC言語の構文で、MQLでも動作するはずのコードの例を教えてくれませんか? --- 2016.12.26 19:10 #68 alexsis78: 何が問題なのか、法的空白。 template<typename T> void SendReceiveParam(T& param)。はいいのですが、サイズが合いません。はNULLを渡すことができません。 --- 2016.12.26 19:11 #69 fxsaber: くそー、せめてC言語の構文で、MQLでも動作するようなサンプルコードを用意できないか?void SendParam(void* );int a=10; SendParam(&a); SendParam(NULL); fxsaber 2016.12.26 19:56 #70 o_O: void SendParam(void* );int a=10; SendParam(&a); SendParam(NULL); お手本をありがとうございましたしかし、使用目的である「利便性」がつかめなかった。例えばintへのポインタをどのように使用したいのか、SendParamからもう一枚追加してください。o_o。美しいが、サイズが合わない。 美しいとは、いったい何なのか。テンプレートを真正面から応用して いるようです。それとも、何か見落としているのでしょうか? 123456789 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
memcpy は使えますか?
ノー)
もし、SendParamを呼び出す前に何らかの準備をしなければならないのであれば、intをCIntクラスでラップするのが簡単です。
ポインターの取り方はネイティブではありません。というか、最初からCIntラッパーを使わないと、ポインタの扱いに苦労しますよ。
まあ、プラスアルファで言えば、料理もするわけですからね。
{
//do something
}
{
int x = 5;
f(&x);
}
アドレスを取るのは準備です。代わりになるのは
f(GetPtr(x)) に加えて,型も渡さなければなりません.
クラスに関数があるとします。
で,パラメータの型(type)とパラメータ自身,あるいはパラメータへのポインタ(void*)が渡されます。
パラメータは任意の型(クラスまたは単純型)でよい。
パラメータは任意の型(クラスまたは単純型)でよい。
template<typename T>
void SendReceiveParam(T& param)。
....
{
double dval = 10;
SendReceiveParam(dval)とする。
int ival = 10;
SendReceiveParam(ival)
...
// 構造体オブジェクトの参照
struct AAA { void operator=(int a) {}.};
AAA struct_val。
SendReceiveParam(struct_val)。
}
intポインタを介して不正なものを書き込む?
問題の状態がまだよくわからない。どうやら、例のものでも、何を得たいのかが明確に定式化されていないようです。
void*パラメータにint型へのポインタを渡そうとしたことは、すでに2回書きました。
(memcpy と中間クラスのオプションは既に提案されているので、繰り返す必要はない)。
void*パラメータにint型へのポインタを渡そうとしたことは、すでに2回書きました。
(memcpy、中間クラスのオプションは既に提案されているので、繰り返す必要はありません)
何が問題なのか、法的空白。
template<typename T>
void SendReceiveParam(T& param)。
はいいのですが、サイズが合いません。
はNULLを渡すことができません。
くそー、せめてC言語の構文で、MQLでも動作するようなサンプルコードを用意できないか?
int a=10;
SendParam(&a);
SendParam(NULL);
int a=10;
SendParam(&a);
SendParam(NULL);
美しいが、サイズが合わない。