Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado
Hi I am writing a DLL, under windows 3.1, using Borland C++ 3.1 for windows compiling using the large memory model. The DLL is called by idl using call_external, and IDL passes a very long array of bytes to the DLL by reference (2621444 bytes). The problem I have is that the DLL can write to the first 32767 bytes of the array, but as soon as it writes the 32768'th byte, idl reads the whole array as being full of zeroes. In the DLL the array is declared as: char far * Array; and it is writen to, at least the first 32767 bytes, using simple pointer arithmetic: *(Array + i) = myvalue; where, as I said, i works from 0 to 32766, but not above - 32766 'cos I start from 0. How can I write to the rest of the array, please? If I can't get at the rest of the array, how does idl do it? Mark