/ / Remplacer kernel32.lib de DMD pour inclure les fonctions manquantes - windows, d, d2, dmd

Remplacement du fichier kernel32.lib de DMD pour inclure les fonctions manquantes - Windows, d, d2, dmd

J'utilise dmd 2.054 et optlink 8.00.12 sous Windows 7.

Le programme suivant:

pragma(lib, "kernel32.lib");
extern(Windows) {
uint LocaleNameToLCID(const(wchar)*, int);
}

void main() {
auto us = LocaleNameToLCID("en-US", 0);
}

Donne une erreur lors de la compilation:

 Error 42: Symbol Undefined _LocaleNameToLCID@8

Mais si j'essaie de remplacer kernel32.lib, j'obtiens de nombreuses erreurs:

implib /system kernel32.lib Windowssystem32kernel32.dll

Error 42: Symbol Undefined _LocaleNameToLCID@8
c:dmdwindowsbin..libphobos.lib(dmain2)
Error 42: Symbol Undefined _LocalFree@4
c:dmdwindowsbin..libphobos.lib(dmain2)
(... snip ...)

En regardant la bibliothèque d'origine et l'implib créé pour LocalFree montre qu'il y a des différences, mais je ne sais pas ce que cela signifie (certains caractères spéciaux manquent dans cette sortie)

---------- IMPLIB
LocalFree
_LocalFreekernel32.dll  LocalFree
_K32GetPerformanceInfo!_LocalFree!Z
_MoveFileExA!É_QueryPerformanceCounter!c_ReadConsoleOutputA!Ó
_LocalFreeZ


---------- DMD"S
LocalFree
_LocalFree@4KERNEL32.dll    LocalFree
_LocalFree@4}

Une idée de comment utiliser le nouveau kernel32.lib dans mes programmes pour éviter de manquer des symboles?

Réponses:

0 pour la réponse № 1

Ça ne fait rien..

J'avais aussi essayé d'utiliser coffimplib auparavant sans succès, mais maintenant ça marche. Aucune idée de ce que j'ai fait plus tôt.

Ma solution a donc été de télécharger le SDK de Windows et d'utiliser coffimplib sur les bibliothèques dont j'ai besoin.

Désolé pour le spam. Si quelqu'un pouvait me dire pourquoi implib ne fonctionne pas, je vais accepter cette réponse.