DllImport fonctionne en .NET 3.5 mais pas en 4 !
Bonjour,
J'ai rencontré un problème sur quelque chose que je sais pas faire en framework 3.5 d'habitude : exporter mes fonctions c++ via DllImport. Cette fois ci j'ai fait un projet en framework 4 et j'ai eu le droit à une exception du type : la signature de la fonction n'est pas la même en code managé et en code non managé. J'ai mis du temps à cherche l'erreur en vain, puis que j'ai passé mon projet en 3.5 et là magie ça marche !
Voici un exemple:
C++/Qt : Quand j'appelle une fonction sans paramètre ça marche bien, si là je rajoute un paramètre même en int ça foire :
Code:
1 2 3 4 5
| extern "C" VISUVIDEOENGINE_EXPORT VisuVideoEngine *VisuVideoEngine_TEST(int c)
{
VisuVideoEngine *instance = new VisuVideoEngine(QString(""), QString(""));
return instance;
} |
C#
Code:
1 2
| [DllImport("VisuVideoEngine.dll")]
public static extern IntPtr VisuVideoEngine_TEST( int a); |
Est-ce que quelqu'un saurait pourquoi ça ne fonctionne plus en 4 ?