global static pointer variable in DLL

torhu no at spam.invalid
Sat May 17 13:57:13 PDT 2008

Zarathustra wrote:
> torhu Wrote:
>> Zarathustra wrote:
>> > I have a C DLL whih global static pointer variables.
>> > When I use this DLL with C everything is ok, but when I try to use it (DLL) with D I receive Acces Violation errors.
>> > I do not have any idea what is wrong. If something is inexplicable, You will ask. Please help.
>> > 
>> > simple example code in dll
>> > gl2ps is global pointer
>> > [code]
>> > if(gl2ps){/* 
>> > never true in C but true in D*/}
>> > [/code]
>> > 

> gl2ps is not exported because it is not necessary beyond DLL.
> gl2ps declaration in DLL is following:
> static GL2PScontext *gl2ps = NULL;
> for example:
> The crash occurs in exported gl2psBeginPage function. (in attachment)
> Declaration of above function in D is following:
> extern (C) GLint gl2psBeginPage;	// static linking
> DLL is little long but very simple, so I can send it to you.

When you say 'crash', do you mean that gl2ps is NULL on line 11 of the 
attached file?    Then the problem is likely be in the code that 
initializes gl2ps, not in the gl2psBeginPage function.

More information about the Digitalmars-d-learn mailing list