PInvoke et Importation de DLL
Bonjour,
J'essaye actuellement d'importer des DLL (littleCMS) depuis le langage C vers C#; et j'ai quelques soucis avec Pinvoke.
Avec les codes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
namespace myLib
{
public class WrapperLCMS
{
public struct cmsHPROFILE
{
Object profile;
}
#region import
[DllImport("lcms.dll")]
public static extern unsafe cmsHPROFILE cmsOpenProfileFromFile(char* ICCProfile, char* sAccess);
#endregion import
#region InitFct
public static unsafe cmsHPROFILE OpenProfileFromFile(string profile, string sAccess)
{
fixed (char* ICC = profile.ToCharArray())
fixed (char* access = sAccess.ToCharArray())
return cmsOpenProfileFromFile(ICC, access);
}
#endregion InitFct
}
} |
sur ma DLL et le code suivant dans un main de test qui à ma DLL en référence :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
using myLib;
namespace test_luib
{
class Program
{
static void Main(string[] args)
{
WrapperLCMS.cmsHPROFILE hInProfile, hOutProfile;
// WrapperLCMS.cmsHTRANSFORM hTransform;
hInProfile = WrapperLCMS.OpenProfileFromFile("1.icc", "r");
hOutProfile = WrapperLCMS.OpenProfileFromFile("2.icc", "r");
}
}
} |
Est-ce que j'utilise mon wrapper de la bonne façon ? le message d'erreur est : La signature du type de cette méthode n'est pas compatible avec PInvoke.
Merci d'avance de votre aide.
PS: J'espère être dans le bon endroit pour poster cela.
EDIT : voila le prototype en C de la fonction que j'essaye de wrapper : CMSAPI cmsHPROFILE CMSEXPORT cmsOpenProfileFromFile(const char *ICCProfile, const char *sAccess);