[fpc-pascal] fp libraries do not like cmem ?
    Fred van Stappen 
    fiens at hotmail.com
       
    Fri Feb 14 20:06:11 CET 2014
    
    
  
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.
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20140214/33954ec1/attachment.html>
    
    
More information about the fpc-pascal
mailing list