2014-06-23 1 views
0

Je dispose d'un fichier rc conating une table de chaîne qui est dans une dll dire X.chaînes Accès dans un fichier rc

Je souhaite utiliser les chaînes dans ce tableau de chaîne dans un projet C# dire présente Y dans le même Solution. Si le projet Y était en C++, je sais que vous pouvez utiliser la fonction LoadString, mais pour C#, je ne suis pas sûr.

Pouvez-vous énumérer les étapes nécessaires?

+2

Avez-vous essayé quelque chose? – gustavodidomenico

+0

Oui, je ne suis même pas en mesure d'accéder à la classe dans la DLL de mon projet C#. J'ai pensé à créer une copie du fichier de ressources dans mon projet C# mais cela causera des problèmes de maintenance –

Répondre

2

Vous pouvez toujours utiliser LoadString grâce à P-Invoke

[DllImport("user32.dll", CharSet = CharSet.Auto)] 
static extern int LoadString(IntPtr hInstance, uint uID,StringBuilder lpBuffer, int nBufferMax); 

Ici aussi DEFINITIONS de LoadLibrary et FreeLibrary

[DllImport("kernel32", SetLastError=true, CharSet = CharSet.Unicode)] 
static extern IntPtr LoadLibraryA(string lpFileName); 

[DllImport("kernel32.dll", SetLastError=true)] 
static extern bool FreeLibrary(IntPtr hModule); 
+0

Et pourquoi utiliseriez-vous P/invoke quand il y a une méthode .NET pour cela? – DonBoitnott

+0

Theres une méthode .NET? –

+0

@DonBoitnott Quelle méthode? J'ai seulement trouvé comment le charger à partir des assemblages .NET * * gérés. Ressources non standard – Adrian