From: tateishi@... Date: 2005-09-06T15:00:44+09:00 Subject: [ruby-list:41111] win32oleで複数のout引数をARGVで取得できない お世話になります。舘石と申します。 win32oleで、複数の[out]引数に、BSTRを渡して、 WIN32OLE::ARGVで取得しようとすると、 一番最後の引数しか取得することができません。 HRESULT GetStatus([out] VARIANT* p1, [out] VARIANT* p2, [out] VARIANT* p3, [out,retval] VARIANT* retval) { *p1 = _variant_t("aaa"); *p2 = _variant_t("bbb"); *p3 = _variant_t("ccc"); *retval = _variant_t(true); return S_OK; } とした時に、 hoge = WIN32OLE.new("〜") hoge.getStatus("","","") printf ("%s %s %s", WIN32OLE::ARGV[0], WIN32OLE::ARGV[1], WIN32OLE::ARGV[2]) # "ccc ccc ccc" になってしまう 文字列ではなく、 *p1 = _variant_t(0); *p2 = _variant_t(1); *p3 = _variant_t(2); とすると、 printf ("%d %d %d", WIN32OLE::ARGV[0], WIN32OLE::ARGV[1], WIN32OLE::ARGV[2]) # ちゃんと "0 1 2" となる なにか私の使い方がまずいのでしょうか… どなたか、ご教授願います。