[#41120] ActiveScriptRuby で Racc をインストールできない — "conundrum /" <conundrum@...>

conundrumです。

11 messages 2005/09/09

[#41157] RD と rdoc に関する newbie な質問 — "conundrum /" <conundrum@...>

conundrumです。

13 messages 2005/09/19
[#41158] Re: RD と rdoc に関する newbie な質問 — rubikitch <rubikitch@...> 2005/09/19

From: "conundrum /" <conundrum@hotmail.co.jp>

[#41159] Re: RD と rdoc に関する newbie な質問 — "conundrum /" <conundrum@...> 2005/09/19

conundrumです。るびきちさん、直々の回答ありがとうございます。

[ruby-list:41111] win32oleで複数のout引数をARGVで取得できない

From: tateishi@...
Date: 2005-09-06 06:00:44 UTC
List: ruby-list #41111
お世話になります。舘石と申します。

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" となる

なにか私の使い方がまずいのでしょうか…
どなたか、ご教授願います。



In This Thread

Prev Next