Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 更换DMD';s kernel32.lib以包含缺少的函数_Windows_D_Dmd - Fatal编程技术网

Windows 更换DMD';s kernel32.lib以包含缺少的函数

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

我在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 _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}