View mode: basic / threaded / horizontal-split · Log in · Help
June 04, 2005
FreeType Binding
OK, So I spent hours and hours porting all 77 files, got a billion 
errors, worked on that for many hours, and decided to go the back way 
and implement ONLY the functions and definitions I needed to render 
basic text, and work from there.

So far this has been MUCH more successfully, spare the 4 or 5 structs 
that are referred to in the headers, but never defined (not in the 
source either).

HOWEVER, now that I have it compiling and all, I am trying to use it, 
and I get an error like this...

test.d(160): function freetype.FT_Init_FreeType (FT_LibraryRec_ **)
does not match argument types (FT_LibraryRec_ **)

I am statically linking a lib I compiled in MSVC.NET and converted with 
coff2omf, plus the lib from my binding of freetype I wrote in D.

I have tried C and Windows linkage. Nothing seems to work.

I attached a copy of my simplified binding. There are commented out 
lines, which all had to be muted because they use one of the 4 or 5 
missing type definitions.

If anyone has any advice, or a clue why the compiler would tell me that 
the arguments don't match, and than show me they are identical types, 
PLEASE let me know.

Thanks in advance.

-- 
Thanks,
Trevor Parscal
www.trevorparscal.com
trevorparscal@hotmail.com
June 04, 2005
Re: FreeType Binding
"Trevor Parscal" <trevorparscal@hotmail.com> wrote in message 
news:d7qu93$1lg8$1@digitaldaemon.com...
> OK, So I spent hours and hours porting all 77 files, got a billion
> errors, worked on that for many hours, and decided to go the back way
> and implement ONLY the functions and definitions I needed to render
> basic text, and work from there.
>
> So far this has been MUCH more successfully, spare the 4 or 5 structs
> that are referred to in the headers, but never defined (not in the
> source either).
>
> HOWEVER, now that I have it compiling and all, I am trying to use it,
> and I get an error like this...
>
> test.d(160): function freetype.FT_Init_FreeType (FT_LibraryRec_ **)
> does not match argument types (FT_LibraryRec_ **)

note if you put the function declarations after the struct declarations in 
freetype.d it seems to work fine (at least in my tiny test). I put the 
functions at the very end.
This may be a bug with forward declarations.
June 04, 2005
Re: FreeType Binding
Ben Hinkle wrote:

> note if you put the function declarations after the struct declarations in 
> freetype.d it seems to work fine (at least in my tiny test). I put the 
> functions at the very end.
> This may be a bug with forward declarations. 

It worked.. thanks.

Ben Hinkle = my hero...

Forward Reference Bug = my enemy

-- 
Thanks,
Trevor Parscal
www.trevorparscal.com
trevorparscal@hotmail.com
June 04, 2005
Re: FreeType Binding
Ben Hinkle wrote:
> "Trevor Parscal" <trevorparscal@hotmail.com> wrote in message 
> news:d7qu93$1lg8$1@digitaldaemon.com...
> 
>>OK, So I spent hours and hours porting all 77 files, got a billion
>>errors, worked on that for many hours, and decided to go the back way
>>and implement ONLY the functions and definitions I needed to render
>>basic text, and work from there.
>>
>>So far this has been MUCH more successfully, spare the 4 or 5 structs
>>that are referred to in the headers, but never defined (not in the
>>source either).
>>
>>HOWEVER, now that I have it compiling and all, I am trying to use it,
>>and I get an error like this...
>>
>>test.d(160): function freetype.FT_Init_FreeType (FT_LibraryRec_ **)
>>does not match argument types (FT_LibraryRec_ **)
> 
> 
> note if you put the function declarations after the struct declarations in 
> freetype.d it seems to work fine (at least in my tiny test). I put the 
> functions at the very end.
> This may be a bug with forward declarations. 
> 
> 

on linux it compiled without any changes using 'dmd -c freetype.d'.
June 04, 2005
Re: FreeType Binding
clayasaurus wrote:
> Ben Hinkle wrote:
> 
>> "Trevor Parscal" <trevorparscal@hotmail.com> wrote in message 
>> news:d7qu93$1lg8$1@digitaldaemon.com...
>>
>>> OK, So I spent hours and hours porting all 77 files, got a billion
>>> errors, worked on that for many hours, and decided to go the back way
>>> and implement ONLY the functions and definitions I needed to render
>>> basic text, and work from there.
>>>
>>> So far this has been MUCH more successfully, spare the 4 or 5 structs
>>> that are referred to in the headers, but never defined (not in the
>>> source either).
>>>
>>> HOWEVER, now that I have it compiling and all, I am trying to use it,
>>> and I get an error like this...
>>>
>>> test.d(160): function freetype.FT_Init_FreeType (FT_LibraryRec_ **)
>>> does not match argument types (FT_LibraryRec_ **)
>>
>>
>>
>> note if you put the function declarations after the struct 
>> declarations in freetype.d it seems to work fine (at least in my tiny 
>> test). I put the functions at the very end.
>> This may be a bug with forward declarations.
>>
> 
> on linux it compiled without any changes using 'dmd -c freetype.d'.
> 
Compiling the lib is no problem. Using it causes the problem.. :)

-- 
Thanks,
Trevor Parscal
www.trevorparscal.com
trevorparscal@hotmail.com
June 04, 2005
Re: FreeType Binding
Well, now I am facing this...

Libraries\FreeType.lib(ftinit)
 Error 42: Symbol Undefined __RTC_CheckEsp
Libraries\FreeType.lib(winfnt)
 Error 42: Symbol Undefined @_RTC_CheckStackVars@8
Libraries\FreeType.lib(pshinter)
 Error 42: Symbol Undefined __RTC_UninitUse
Libraries\FreeType.lib(psmodule)
 Error 42: Symbol Undefined ___security_cookie
Libraries\FreeType.lib(psmodule)
 Error 42: Symbol Undefined @__security_check_cookie@4

OK, so if I compiled the lib with MSVC.NET, and converted it with 
(Digital Mars) coff2omf, why is it mising these sybmols?

Any ideas of other ways to get this working? Experiences with MSVC.NET 
incompatibility?

-- 
Thanks,
Trevor Parscal
www.trevorparscal.com
trevorparscal@hotmail.com
June 04, 2005
Re: FreeType Binding
I guess I am just flooding this group today.. Sorry..

Anyhoo, I am using a NON microsoft compiled lib now, which doesn't freak 
out like that one did...

and here is my new problem..

Source\Terra\Primitives\Drawing\Composite.obj(Composite)
 Error 42: Symbol Undefined _FT_Init_FreeType
Source\Terra\Primitives\Drawing\Composite.obj(Composite)
 Error 42: Symbol Undefined _FT_Done_FreeType

Is there something i don't know about making a static lib? should I be 
making a .def file for these functions? They are defined in the 
freetype.d file which I compiled to a lib..

-- 
Thanks,
Trevor Parscal
www.trevorparscal.com
trevorparscal@hotmail.com
June 04, 2005
Re: FreeType Binding
"Trevor Parscal" <trevorparscal@hotmail.com> wrote in message 
news:d7r1hv$1nhp$1@digitaldaemon.com...
> Ben Hinkle wrote:
>
>> note if you put the function declarations after the struct declarations 
>> in freetype.d it seems to work fine (at least in my tiny test). I put the 
>> functions at the very end.
>> This may be a bug with forward declarations.
>
> It worked.. thanks.
>
> Ben Hinkle = my hero...
>
> Forward Reference Bug = my enemy
>
> -- 
> Thanks,
> Trevor Parscal
> www.trevorparscal.com
> trevorparscal@hotmail.com

Narrowing down the shortest reproduction steps and posting to the bugs 
newsgroup will help Walter squash these things. I think many people here 
have been bitten by odd things like this enough that one develops the 
ability to smell forward-reference-bugs from 50 yards.
June 04, 2005
Re: FreeType Binding
"Trevor Parscal" <trevorparscal@hotmail.com> wrote in message 
news:d7r37e$1olh$1@digitaldaemon.com...
>I guess I am just flooding this group today.. Sorry..
>
> Anyhoo, I am using a NON microsoft compiled lib now, which doesn't freak 
> out like that one did...
>
> and here is my new problem..
>
> Source\Terra\Primitives\Drawing\Composite.obj(Composite)
>  Error 42: Symbol Undefined _FT_Init_FreeType
> Source\Terra\Primitives\Drawing\Composite.obj(Composite)
>  Error 42: Symbol Undefined _FT_Done_FreeType
>
> Is there something i don't know about making a static lib? should I be 
> making a .def file for these functions? They are defined in the freetype.d 
> file which I compiled to a lib..
>
> -- 
> Thanks,
> Trevor Parscal
> www.trevorparscal.com
> trevorparscal@hotmail.com

The freetype.d file just has the extern(C) void foo() declarations, correct? 
You need to link in the actual implementations. I'm confused when you say 
"they are defined in freetype.d which I compiled to a lib" about which libs 
you're referring to. You shouldn't compile freetype.d into a lib - you 
should compile the c code that contains the implementations into a lib.
Top | Discussion index | About this forum | D home