> > If a Pascal program returns a reference counted type to a C library, > then you get a memory leak, sharemem/cmem or not. If a C program > passes a pchar to a function that expects an ansistring, you can get > any sort of behaviour ranging from no problem to program crashes > (which is logical, since the C program is passing a variable of a > wrong type). > > You cannot declare a function as returning an "ansistring" in C, > since C doesn't know the ansistring type. So you cannot properly use > functions which accept or return values of that type from C programs. > It's as simple as that. You simply have to declare your functions > which you want to be callable from C with types that also exist in C > (or which can be constructed to be 100% the same in C). > > > Jonas >
Thanks, and after looking into cmem.pp source code, I see why - it is simply calling a few simple functions from the operating system libraries. cmem is a very short simple and small unit. Advantages over sharemem are with cmem you wouldn't have to ship sharemem.dll with the application. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal