Subject | udf writing |
---|---|
Author | Mitchell Peek |
Post date | 2005-04-28T20:33:35Z |
on the IBPheonix site, Greg Deatz write's
<<Oddly enough, the Windows version of InterBase is compiled using
Microsoft’s C-compiler (MSVC). Without getting into a discussion as to
why they chose this compiler, suffice it to say that InterBase expects
dynamically allocated memory to be allocated using MSVC’s malloc routine.
MSVC’s malloc routine handles memory allocation in a manner “all its
own”. That is, we can’t rightly infer how it manages memory, but it
certainly does not allocate memory in the same fashion as Delphi. So, a
Delphi function that tries to dynamically allocate memory using GetMem
or the Windows system call GlobalAlloc will most certainly cause
problems with InterBase if used in conjunction with the free_it keyword. >>
Does this hold true for firebird? will it change with FB 2?
<<Oddly enough, the Windows version of InterBase is compiled using
Microsoft’s C-compiler (MSVC). Without getting into a discussion as to
why they chose this compiler, suffice it to say that InterBase expects
dynamically allocated memory to be allocated using MSVC’s malloc routine.
MSVC’s malloc routine handles memory allocation in a manner “all its
own”. That is, we can’t rightly infer how it manages memory, but it
certainly does not allocate memory in the same fashion as Delphi. So, a
Delphi function that tries to dynamically allocate memory using GetMem
or the Windows system call GlobalAlloc will most certainly cause
problems with InterBase if used in conjunction with the free_it keyword. >>
Does this hold true for firebird? will it change with FB 2?