我应该使用什么静态库链接以使用NormalizeString()
函数?与WinNLS链接
与MSDN上记录的大多数函数相比,使用该函数所需的静态库未声明。我尝试使用从DLL派生的名称:normaliz.lib
,并且它成功链接,但随后在运行时弹出一条消息,说我的计算机上找不到Normalization.dll
,并且进程已关闭。
我应该使用什么静态库链接以使用NormalizeString()
函数?与WinNLS链接
与MSDN上记录的大多数函数相比,使用该函数所需的静态库未声明。我尝试使用从DLL派生的名称:normaliz.lib
,并且它成功链接,但随后在运行时弹出一条消息,说我的计算机上找不到Normalization.dll
,并且进程已关闭。
由Hans Passant指出,正确的导入库是normaliz.lib
。看来我的设置中存在一些问题。
我使用的是Windows SDK v6.0A。切换到Windows SDK v7.0A后,我的问题停止了。
刚刚在另一台计算机上出现此问题。升级到V7.0A也解决了那里的问题。 –
您链接页面底部的链接指出下载包含implib和dll资源。您可能必须显示该DLL,或者至少将其放入PATH中。
额外的下载是针对Windows XP的。我在Windows 7上,它应该是自Windows Vista以来内置的。 –
仅供参考:下行链路不包含导入库(因为它似乎已经正常)。 – peterchen
这是Normaliz.dll。仅适用于Vista及更高版本。如果你打算以XP为目标,那么一定要正确设置_WIN32_WINNT宏值,以便在目标操作系统中无法使用的函数出现编译错误。 –
@Hans:是的,我已经在检查''_WIN32_WINNT''。我在Windows 7上测试。 –
当我在Windows 7上试用此软件时正常工作。您使用的是哪个版本的Windows SDK?我在6.0中试过,在调试时我看到它在kernel32.dll中用ntdll.dll中的RtlNormalizeString实现。这使得文档微妙地错了,normaliz.lib而不是normaliz.dll –