Windows 更换DMD';s kernel32.lib以包含缺少的函数
我在Windows7上使用DMD2.054和optlink 8.00.12 以下节目:Windows 更换DMD';s kernel32.lib以包含缺少的函数,windows,d,dmd,Windows,D,Dmd,我在Windows7上使用DMD2.054和optlink 8.00.12 以下节目: pragma(lib, "kernel32.lib"); extern(Windows) { uint LocaleNameToLCID(const(wchar)*, int); } void main() { auto us = LocaleNameToLCID("en-US", 0); } 编译时出现错误: Error 42: Symbol Undefined _LocaleName
pragma(lib, "kernel32.lib");
extern(Windows) {
uint LocaleNameToLCID(const(wchar)*, int);
}
void main() {
auto us = LocaleNameToLCID("en-US", 0);
}
编译时出现错误:
Error 42: Symbol Undefined _LocaleNameToLCID@8
但是,如果我尝试替换kernel32.lib,会出现许多错误:
implib /system kernel32.lib \Windows\system32\kernel32.dll
Error 42: Symbol Undefined _LocaleNameToLCID@8
c:\dmd\windows\bin\..\lib\phobos.lib(dmain2)
Error 42: Symbol Undefined _LocalFree@4
c:\dmd\windows\bin\..\lib\phobos.lib(dmain2)
(... snip ...)
查看原始lib和为LocalFree
创建的implib,可以看出两者之间存在差异,但我不确定这意味着什么(此输出中缺少一些特殊字符)
你知道如何在我的程序中使用新的kernel32.lib来避免丢失符号吗?
我以前也尝试过使用coffimplib
,但没有成功,但现在它起作用了。不知道我之前做了什么
因此,我的解决方案是下载windows sdk,并在我需要的库上使用coffimplib
很抱歉收到垃圾邮件。如果有人能告诉我为什么implib
不起作用,我会接受这个答案
---------- IMPLIB
LocalFree
_LocalFreekernel32.dll LocalFree
_K32GetPerformanceInfo!_LocalFree!Z
_MoveFileExA!É_QueryPerformanceCounter!c_ReadConsoleOutputA!Ó
_LocalFreeZ
---------- DMD'S
LocalFree
_LocalFree@4KERNEL32.dll LocalFree
_LocalFree@4}