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