Re: Problem closing app with big UDT



David Kerber wrote:
In article <45640ea6.174195498@xxxxxxxxxxxxxxxx>, erewhon@xxxxxxxxxx says...
On Tue, 21 Nov 2006 19:23:56 -0500, David Kerber
<ns_dkerber@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:

In article <u5YSTFcDHHA.3604@xxxxxxxxxxxxxxxxxxxx>, Dan@xxxxxxxx says...
This same structure works with no trouble in
Delphi.
Are you trying to pass the UDT between VB and Delphi, or do you just mean that the Delphi equivalent works fine?
Passing it back and forth between a Delphi .dll to a VB application. Yes, we are aware of the alignment issue, and have designed with that in mind. ALL the data is of one of 3 types: Long, Double, or Byte array. All the array sizes are multiples of 4, so the 4-byte alignment should be maintained throughout unless we screwed up somewhere. We didn't think of passing the whole thing as a byte array, and it's too late to go back and rework it now.
It would take about 1 hour max to re-work it

In any one app, maybe, but this dll is in production use in several different apps, in 3 different languages.

The re-work time is the re-work time is the re-work time.
If it's one dll.
Testing is of course another matter.

You wouldn't be here if you hadn't already recognized the need.
Adding more band-aids would most likely only make the inevitable worse
when you're finally forced to really fix it.

I'd like to call attention to your own words:
"unless we screwed up somewhere"
I don't actually see how that's in question, since /someone/ posted
already that it doesn't seem to be closing correctly.

I do have one truly *horrible* idea for you though.
It's nothing but a further cover-up.
Be aware that it doesn't fix anything, though it might *hide* it.
And at the very real potential cost of causing /other/ crashes later.
We've already told you how you can probably cure the problem.
But if all you want now is a band-aid to cover it up, then
you might as well try the mother-of-all-VB-band-aids:

<http://obob.com/cis58/evilend.html>




Bob
--
.



Relevant Pages

  • Re: Problem closing app with big UDT
    ... Are you trying to pass the UDT between VB and Delphi, ... Passing it back and forth between a Delphi .dll to a VB application. ... ALL the data is of one of 3 types: Long, Double, or Byte array. ... In any one app, maybe, but this dll is in production use in several ...
    (microsoft.public.vb.general.discussion)
  • Re: Problem closing app with big UDT
    ... Are you trying to pass the UDT between VB and Delphi, or do you just mean that the Delphi equivalent works fine? ... All the array sizes are multiples of 4, so the 4-byte alignment should be maintained throughout unless we screwed up somewhere. ... In any one app, maybe, but this dll is in production use in several different apps, in 3 different languages. ... So coming at it from a different direction is there any way I can, just in my VB app, send and receive the structure I need without actually passing it as a structure? ...
    (microsoft.public.vb.general.discussion)
  • Re: How to pass 2-dimensional array to/from DLL?
    ... > instead of TStream? ... If you cannot ask the DLL up front how much memory it needs (in which you can ... Delphi has the TStreamAdapter ... so a one dimensional array would be okay? ...
    (borland.public.delphi.language.objectpascal)
  • Re: passing BYTE array pointer in vb.net
    ... Are you sure that the byte array you are passing is the size you've ... > I need to call a function from within VB.net to a function in a dll writen ... have a BYTE array pointer in it's arguments, So the problem is passing the ...
    (microsoft.public.dotnet.framework.compactframework)
  • Re: Problem closing app with big UDT
    ... Are you trying to pass the UDT between VB and Delphi, ... Passing it back and forth between a Delphi .dll to a VB application. ... ALL the data is of one of 3 types: Long, Double, or Byte array. ... All the array sizes are multiples of 4, so the 4-byte alignment should ...
    (microsoft.public.vb.general.discussion)