-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mixed mode assembly (still) not working on win32 build #10268
Comments
Also, this works correctly under wine with genuine microsoft dotnet framework v2. I filed a similar bug for wine-mono also - I thought I did file one at the Xamarin bugzilla for the full mono binary but I could not find my old bug. This is mainly a re-test. It did not work the last time I tried, and I am just trying it again. |
The wine-mono issue I filed is madewokherd/wine-mono#29 |
The 0x1b type is MONO_TYPE_FNPTR . The assertion happens in the manage wrapper code. The managed wrapper code differs from the native wrapper code in that it does not support this type and I don't know the reason. I have another thought and think I might know why: the mixed mode assembly not only does P/Invoke but also reverse P/Invoke : it calls native code from C# code, and also passes a C# delegate to the C native code as function pointers for the C native code to call back. So it is not surprising that MONO_TYPE_FNPTR happens though it is probably rare. |
The current expected exception under mono 4.8 linux is:
|
For mono 5.14 onwards, it asserts at |
I tried cross-compiling current master HEAD, which is
With just the first one, I got a lot further until I hit the 2nd one; unfortunately the 2nd one in In the second case, it seems the current code in HEAD is incomplete anyway . |
Trying a different idea for the 2nd part, P/Invoke still broken. I guess the first part is probably incorrect.
|
revisiting, now the error is :
This is just the official build https://download.mono-project.com/archive/6.12.0/windows-installer/mono-6.12.0.107-gtksharp-2.12.45-win32-0.msi "C:\Program Files\Mono\lib\mono\4.5\mscorlib.dll" is definitely present there (I didn't do anything different from just pressing next with the installer). Maybe wine's mscoree.dll (which mscorlib.dll depends on) is not good enough? Or maybe support for mixed-mode assembly is still buggy? |
Steps to Reproduce
https://sourceforge.net/projects/hp-pxl-jetready/files/Microsoft%20Font%20Validator/old/win32.hybrid/
Current Behavior
Expected Behavior
On which platforms did you notice this
[ ] macOS
[ ] Linux
[*] Windows
Version Used:
Stacktrace
The text was updated successfully, but these errors were encountered: