J'ai une dll C# gérée qui utilise une dll C++ non gérée à l'aide de DLLImport. Tout fonctionne parfaitement. Cependant, je veux intégrer cette DLL non gérée dans ma DLL gérée, comme l'explique Microsoft :
J'ai donc ajouté le fichier dll non géré à mon projet dll géré, j'ai défini la propriété 'Embedded Resource' et j'ai modifié le DLLImport comme suit :
[DllImport("Unmanaged Driver.dll, Wrapper Engine, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null",
CallingConvention = CallingConvention.Winapi)]
où 'Wrapper Engine' est le nom de l'assemblage de ma DLL gérée. 'Unmanaged Driver.dll' est la DLL non gérée.
Quand je cours, j'obtiens :
L'accès est refusé. (Exception de HRESULT : 0x80070005 (E_ACCESSDENIED))
J'ai vu sur MSDN et sur http://blogs.msdn.com/suzcook/ c'est censé être possible...