Usando la aplicación C ++ en .NET

Soy nuevo en usar PInvoke con Classic C ++ y ayer hice esta pregunta:Usando las funciones de la API de Windows en .NET

Ahora he creado un programa de C ++ muy simple de la siguiente manera:

#include <iostream>
#include <stdio.h>
#include <string>
extern "C" __declspec(dllexport) int hello()
{
  //printf ("Hello World!\n");
  return 1;
} 

Luego compilé la DLL usando el siguiente comando: g ++ -c mydll.cpp Luego creé la biblioteca compartida usando el siguiente comando: g ++ -shared -o mydll.dll mydll.o, luego copié mydll.dll a C: \ Windows \ syswow64 .

Luego creé un nuevo proyecto VB.NET y creé el siguiente código:

    Imports System.Runtime.InteropServices
Public Class TestPlatformInvoke
    <DllImport("mydll.dll", CallingConvention:=CallingConvention.Cdecl)> _
    Public Shared Function hello() As Integer
    End Function
    Public Sub New()
        Try
            Dim test As Integer = hello() 'Line 6 ex As Exception
            'I don't swallow exceptions
            MsgBox("test")
        Catch ex As Exception

        End Try
    End Sub
End Class

La aplicación sale después de llamar a hello (). No lanza una excepción.

Estoy tratando de entender cómo funciona esto. No tengo ninguna experiencia comercial con c ++; Solo experiencia académica en la universidad.

Aquí hay una imagen de Dependancy Walker para mydll.dll.

Respuestas a la pregunta(2)

Su respuesta a la pregunta