delorie.com/archives/browse.cgi | search |
/ Christian Lescher <christian AT lescher DOT de> wrote: | > Yes, there is a general problem when you want to allocate in one DLL made | > by one compiler and de-allocate in another built be another compiler. In | > this case, the heaps are different. This is not a Cygwin-specific issue. | | I see. Would it be possible then to define a second function within the DLL, let's say freeStr(const char* resStr) which releases the memory | again? Yes I think that is the way to do it, thats how we solved the problem between borland and microsoft compiled code. | And should Troy Noble's code then work for strings > 64 KB, too? (Currently, I get an access violation, even when not freeing the allocated | memory outside the DLL.) Is it the code below that dies Which compiler does what in this scenario?? Could it be some difference between how cygwin and microsoft handles strings, 64kB smells like some magic limit of some kind :-) Have you tried doing the copy yourself? byte by byte?? /Andy | char* | mallocAndStrCpy (const char* srcStr) { | if (srcStr == NULL) | return NULL; | return strdup(srcStr); | } -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |