Hello.

It seams to me that i monopolize the forum here.
Please advice if it borrow you, i will stop directly... ;-)

I still fight with cmem and trust me, it is a hard battle.
Mainly because the debugger gives me very few infos and because, if i do not 
use cmem, all examples are working perfectly, the debugger is happy and do not 
gives me any warning, only lot of "OK" ...

So difficult to understand why LCL+cmem do not like uos library.

I follow the advices of Tomas and the debugger gives me a (very) few more infos.
One is that:

#8  0x0000000000426ae6 in fpc_ansistr_decr_ref ()

So i isolate the only function who gives as result string (and is working 
without cmem):

function uos_GetInfoDeviceStr() : String ; 
var
myresult : string;
begin
...
result := myresult;
end; 

I changed with

function uos_GetInfoDeviceStr() : PChar ;
var
myresult : string;
begin
...
result := @myresult;
end; 

And that is ok, no more crash and debugger is happy...

But now, when i try to retrieve the result with, for example :

procedure getinfo ;
var
mystring : string;
begin
mystring := uos_GetInfoDeviceStr();
end;

I get:
=> mystring = '' (empty string).  

How must i do to retreive the data of Pchar (the result of 
uos_GetInfoDeviceStr()) ?

PS : It seams that cmem prefers pointers as result, so, maybe i have to change 
all functions to give pointers as result (yes/no?). 

Many thanks.



                                          
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to