[#10007] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...>

青山です。

31 messages 2000/06/11
[#10008] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...> 2000/06/11

青山です。

[#10018] Re: [ruby-talk:03267] Re: mod_ruby error? — Shugo Maeda <shugo@...> 2000/06/13

前田です。

[#10027] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...> 2000/06/13

青山です。

[#10028] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...> 2000/06/13

青山です。

[#10029] Re: [ruby-talk:03267] Re: mod_ruby error? — Shugo Maeda <shugo@...> 2000/06/13

前田です。

[#10035] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...> 2000/06/13

青山です。

[#10038] Re: [ruby-talk:03267] Re: mod_ruby error? — Shugo Maeda <shugo@...> 2000/06/14

前田です。

[#10041] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...> 2000/06/14

青山です。

[#10045] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...> 2000/06/14

青山です。

[#10046] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...> 2000/06/14

青山です。

[#10047] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...> 2000/06/14

青山です。

[#10048] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...> 2000/06/14

青山です。

[#10135] don't use mktemp() — Shugo Maeda <shugo@...>

前田です。

35 messages 2000/06/27
[#10136] Re: don't use mktemp() — matz@... (Yukihiro Matsumoto) 2000/06/27

まつもと ゆきひろです

[#10137] Re: don't use mktemp() — Shugo Maeda <shugo@...> 2000/06/27

前田です。

[#10141] Re: don't use mktemp() — kjana@... (YANAGAWA Kazuhisa) 2000/06/27

In message <874s6f1rqj.wl@studly.netlab.co.jp>

[#10143] Re: don't use mktemp() — WATANABE Hirofumi <eban@...> 2000/06/27

わたなべです.

[#10181] Re: don't use mktemp() — Katsuyuki Komatsu <komatsu@...> 2000/07/03

小松です。

[#10183] Re: don't use mktemp() — WATANABE Hirofumi <eban@...> 2000/07/03

わたなべです.

[ruby-dev:10052] win32ole and NONAMELESSUNION

From: Katsuyuki Komatsu <komatsu@...>
Date: 2000-06-15 14:27:50 UTC
List: ruby-dev #10052
小松です。

win32ole-0.1.2をmswin32でコンパイルする際、MakefileのCFLAGSに
-DNONAMELESSUNIONを追加すると、添付のようなエラーになります。

これを避けるため、win32ole.cを以下のような感じにしてみましたが、
いかがでしょう?

Cygwin 1.1.2だと、cygwin/ocidl.hで定義されているものはocidl.hに
マージされているので、win32ole.cの変更に加えて-Icygwinを消して
oleauto.hをちょっと変えるだけでコンパイルできるようになって、
だいぶ楽になりました。

diff -ru1p win32ole-0.1.2.dist/win32ole.c win32ole-0.1.2/win32ole.c
--- win32ole-0.1.2.dist/win32ole.c	Fri May 26 19:42:38 2000
+++ win32ole-0.1.2/win32ole.c	Tue Jun 13 21:50:54 2000
@@ -34,2 +34,8 @@
 
+#if defined NONAMELESSUNION && defined __GNUC__
+#define V_UNION1(X, Y) ((X)->u.Y)
+#else
+#define V_UNION1(X, Y) ((X)->Y)
+#endif
+
 typedef struct {
@@ -809,3 +815,3 @@ ole_const_load(pTypeLib, klass, self)
                 pName = ole_wc2mb(bstr);
-                val = ole_variant2val(V_UNION(pVarDesc, lpvarValue));
+                val = ole_variant2val(V_UNION1(pVarDesc, lpvarValue));
                 *pName = toupper(*pName);

--- oleauto.h.dist	Thu Jun  8 08:35:40 2000
+++ oleauto.h	Sat Jun  3 11:29:40 2000
@@ -23,12 +23,9 @@
 #ifdef NONAMELESSUNION
-#define V_UNION(X,Y) ((X)->u.Y)
+#define V_UNION(X,Y) ((X)->n1.n2.n3.Y)
+#define V_VT(X) ((X)->n1.n2.vt)
 #else
 #define V_UNION(X,Y) ((X)->Y)
+#define V_VT(X) ((X)->vt)
 #endif
-#ifdef __cplusplus
 #define V_BOOL(X) V_UNION(X,boolVal)
-#else
-#define V_BOOL(X) V_UNION(X,bool)
-#endif
-#define V_VT(X) ((X)->vt)
 #define V_ISBYREF(X) (V_VT(X)&VT_BYREF)

C:\lang\win32ole>nmake -nologo
	cl -DIMPORT -I\usr\local\lib\ruby\1.5\i386-mswin32 -nologo -DNT=1 -MD -Zi /W3 -I/usr/local/include -DNONAMELESSUNION /c win32ole.c
win32ole.c
    ...
win32ole.c(810) : error C2039: 'n1' : 'tagVARDESC' のメンバではありません。
        C:\Program Files\Microsoft Visual Studio\VC98\Include\oaidl.h(764) : 'tagVARDESC' の宣言を確認してください。
    ...
NMAKE : fatal error U1077: 'cl' : リターン コード '0x2'
Stop.

C:\lang\win32ole>

--
小松克行 / Katsuyuki Komatsu <komatsu@sarion.co.jp>

In This Thread

Prev Next