[#5218] Ruby Book Eng tl, ch1 question — Jon Babcock <jon@...>

13 messages 2000/10/02

[#5404] Object.foo, setters and so on — "Hal E. Fulton" <hal9000@...>

OK, here is what I think I know.

14 messages 2000/10/11

[#5425] Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...>

18 messages 2000/10/11
[#5427] RE: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — OZAWA -Crouton- Sakuro <crouton@...> 2000/10/11

At Thu, 12 Oct 2000 03:49:46 +0900,

[#5429] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...> 2000/10/11

Thanks for the input.

[#5432] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Yasushi Shoji <yashi@...> 2000/10/11

At Thu, 12 Oct 2000 04:53:41 +0900,

[#5516] Re: Some newbye question — ts <decoux@...>

>>>>> "D" == Davide Marchignoli <marchign@di.unipi.it> writes:

80 messages 2000/10/13
[#5531] Re: Some newbye question — matz@... (Yukihiro Matsumoto) 2000/10/14

Hi,

[#5544] Re: Some newbye question — Davide Marchignoli <marchign@...> 2000/10/15

On Sat, 14 Oct 2000, Yukihiro Matsumoto wrote:

[#5576] Re: local variables (nested, in-block, parameters, etc.) — Dave Thomas <Dave@...> 2000/10/16

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#5617] Re: local variables (nested, in-block, parameters, etc.) — "Brian F. Feldman" <green@...> 2000/10/16

Dave Thomas <Dave@thomases.com> wrote:

[#5705] Dynamic languages, SWOT ? — Hugh Sasse Staff Elec Eng <hgs@...>

There has been discussion on this list/group from time to time about

16 messages 2000/10/20
[#5712] Re: Dynamic languages, SWOT ? — Charles Hixson <charleshixsn@...> 2000/10/20

Hugh Sasse Staff Elec Eng wrote:

[#5882] [RFC] Towards a new synchronisation primitive — hipster <hipster@...4all.nl>

Hello fellow rubyists,

21 messages 2000/10/26

[ruby-talk:5878] Re: Weird Win32API problem

From: Lewis Perin <perin@...>
Date: 2000-10-26 18:40:01 UTC
List: ruby-talk #5878
Dave Thomas <Dave@thomases.com> writes:

> This is probably a no-brainer to folks who mess about on Windows every 
> day, but it has me stumped...
> 
> We have some code (part of the installer) that updates the registry:
> 
>     result = RegCreateKey.call(top, subkey, 0, keyClass,
>       REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, retSecurity,
>       retHandle, retResult)
> 
> Where
> 
>   RegCreateKey = Win32API.new("advapi32", "RegCreateKeyEx",
>     ['i','p','i','p','i','i','p','p','p'],'i')
> 
> 
> This works fine in isolation. However, if before calling tihs code we
> call the following routine:
> 
>    def log(*msg)
>      File.open($logfile, "a+") {|f| f.puts *msg}
>    end
> 
> Then the RegCreateKey fails, saying it was passed an invalid
> parameter.
> 
> It's the open, not the puts, that seems to be causing the problem.
> 
> 
> Does anyone have any ideas? Are there any linkages between opening
> files are playing with the registry?

It's hard to know what goes on under the hood of the Win32 OSes, but
the Registry does exist on disk and presumably some sort of file I/O
is involved in e.g. RegCreateKey.

As a C[++] programmer on Win32 platforms I've had trouble with handles
getting lost by the runtime library or OS when my programs mixed
stdlib I/O with Win32 native filesystem calls that bypass e.g. fopen.
In my experience this kind trouble can happen even when each file is
treated consistently, i.e. only with stdlib calls or only with Win32
API calls.  I could certainly be wrong, but your problem smells
familiar.  (Note: my experience has been with the Borland compiler.)

It might be worthwhile to try changing the log method to use
CreateFile, WriteFile and CloseHandle.

/Lew
-- 
Lew Perin / perin@mail.med.cornell.edu / perin@acm.org
www.panix.com/~perin/

In This Thread

Prev Next