Laden...

pInvokeStackImbalance / NetFx40_PInvokeStackResilience funktioniert nicht...

Erstellt von Uwe81 vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.530 Views
U
Uwe81 Themenstarter:in
282 Beiträge seit 2008
vor 12 Jahren
pInvokeStackImbalance / NetFx40_PInvokeStackResilience funktioniert nicht...

Ich portiere gerade eine Anwendung von WinForms auf WPF und gleichzeitig von .NET 3.5 auf .NET 4.0

Jetzt bekomme ich in einem Assembly, welches ich aber nicht ändern kann, ein pInvokeStackImbalance. Recherche ergab, dass dieses üblicherweise auf eine falsche Calling Convention zurückzuführen ist. Bis .NET 3.5 wurde sowas automatisch behoben, ab .NET 4.0 kommt ein Fehler.

Laut MSDN <NetFx40_PInvokeStackResilience> Element kann man durch

<NetFx40_PInvokeStackResilience enabled="1"/>

in der app.config das alte Verhalten erzwingen.

Bei mir funktioniert das aber nicht....

Hat jemand Ideen? Jetzt weiß ich nicht, ob das trotz dieser Info schief geht, oder ob er die garnicht erst erkennt / einliest.

Bin ziemlich ratlos und für jedne Tipp dankbar.

U
Uwe81 Themenstarter:in
282 Beiträge seit 2008
vor 12 Jahren

Als Ergänzung:

Ich habe in demselben Programm zu beginn man eine anderen DLL mit falscher Calling Convention aufgerufen. Ob er an der stelle mit pInvokeStackImbalance abbricht, hängt in der Tat von dem Wert von NetFx40_PInvokeStackResilience ab.

Isofern scheint die andere pInvokeStackImbalance zwar bei .NET 3.5 ignoriert zu werden, nicht aber bei .NET 4.0 mit NetFx40_PInvokeStackResilience.

Bin langsam echt ratlos...

1.346 Beiträge seit 2008
vor 12 Jahren

Warum versuchst du nicht die Fehler zu beheben, anstatt sie nur auszublenden?

U
Uwe81 Themenstarter:in
282 Beiträge seit 2008
vor 12 Jahren

Warum versuchst du nicht die Fehler zu beheben, anstatt sie nur auszublenden?

Weil sowohl das Managed Assembly als auch die aufgerufene Unmanaged-DLL nicht von uns, sondern von einem Projektpartner kommt und wir auch keine Sourcen davon haben... Wir greifen von außen nur über die Managed-DLL darauf zu.

Wir werden aber Montag mal Kontakt zu dem Partner aufnehmen.