Le code entier de la DLL a été écrit en utilisant C natif et une fonction est ci-dessous pour votre référence.Code C natif non géré vers .NET compatible
int32 dllimport swe_calc FAR PASCAL ( double TJD, int ipl, int32 iflag, double * xx, char * SERR);
La plupart des fonctions sont écrites en utilisant FAR PASCAL et lorsque j'ai essayé de convertir cette DLL en compatible avec .net, j'étais en panne d'erreurs.
J'ai essayé en changeant la propriété Comman Runtime Support de "No Common Runtime Support" en Common Runtime Support (ie \ clr). et changé le \ MD aussi. Lorsque j'ai essayé d'enregistrer la DLL en utilisant Regsvr32 à partir de l'invite de commande, j'ai eu l'erreur indiquant que "Le module" mydll.dll "a été chargé par le point d'entrée DllRegisterServer n'a pas été trouvé".
J'aime utiliser cette DLL de mon application C#, ce sera vraiment génial si quelqu'un m'aide avec ça.
Merci à l'avance.
Gan
Merci pour votre réponse. J'ai essayé comme vous l'avez suggéré ci-dessous, [DllImport ("swedll32.dll")] public static extern double swe_set_lapse_rate (double lapse_rate); private void button1_Click (expéditeur d'objet, EventArgs e) { double t = swe_set_lapse_rate (200) ;; } J'ai déclaré et appelé cette fonction dans le clic sur le bouton et obtenu l'exception "system.dllnotfoundexception". Des informations supplémentaires comme "uanble to load dll". Faites-moi savoir si je me trompe quelque part. Merci –
Cela vous dit qu'il ne peut pas trouver la DLL. Essayez de le mettre là où il peut être trouvé. Si vous ouvrez une invite de commande et tapez "Path", vous obtiendrez une liste d'endroits où vous pouvez le déposer et Windows sera en mesure de le trouver. –