草庐IT

windows - CRT,我们还需要重新分配它吗?

在分发Windows原生应用程序时,我们还需要为vcredist.exe烦恼吗?这些是否与Win-7捆绑在一起?如果不是,是否有任何技术原因,这些没有通过例如Windows更新-而不是让我们用另一件必须工作的东西给客户带来负担?(好吧,这听起来可能有争议,但我真的很想知道为什么这些库没有默认安装/更新在Windows机器上) 最佳答案 我认为这取决于您链接的方式/内容。如果您直接链接到kernel32.dll等,那没关系,当然(即嵌入了c运行时库),但Microsoft不推荐这种分发方法。如果您通过msvcr80/90/whatev

windows - 构建 DLL 时;我应该链接到什么类型的 CRT?

在窗口中;有2个选项可以链接到CRT:多线程,静态链接多线程,动态链接有人可以阐明这里的最佳做法是什么吗?我应该“静态”链接到CRT还是动态链接?如果我做一个动态链接,并且我编写了一个程序,该程序使用我的DLL+另一个第3方DLL(它正在做一个到CRT的静态链接),这是一个问题吗? 最佳答案 当您在应用程序中使用DLL时,这是一件大事。EXE和DLL使用相同的内存分配器是非常重要的。如果您从需要由调用者释放的DLL函数返回指针或C++对象(如std::string)。要获得相同的分配器,所有模块必须使用相同的CRT实例。如果您使用/

windows - 使用太多静态链接的 CRT 解决 fls 限制?

当通过LoadLibrary加载外部DLL(不受我们控制)时,我们遇到了一个问题,即这些DLL中的静态链接CRT无法分配光纤本地存储。这类似于mskb193462,除了这是FLS,而且只有128个。有什么有用的方法可以解决这个问题吗?CRT无论如何都在使用GetProcAddress来查找FlsAlloc(因为它在XP中显然不存在),所以它真的需要它吗?(这是在Vista上,FlsAlloc实际存在;DLL似乎正在使用MSVC8) 最佳答案 坦率地说,除了加载更少的dll之外,这里没有解决方案。您可以Hookdll的导入地址表-但那

windows - 为什么我的无 CRT 应用程序在启动时间歇性崩溃?

例如,这个应用程序:#define_WIN32_WINNT0x0500#includeint__stdcallNoCRTMain(void){intresult;PWSTRlpCmdLine=GetCommandLine();for(;;){if(*lpCmdLine==L'"'){lpCmdLine++;for(;;){if(*lpCmdLine==L'"')break;if(*lpCmdLine==L'\0')break;lpCmdLine++;}}if(*lpCmdLine==L'')break;if(*lpCmdLine==L'\0')break;lpCmdLine++;}wh

windows - CRT 10.0 版的 LNK2022 和 LNK2034 链接器错误

很抱歉打扰任何人这个问题,但我已经研究了几个小时,还没有解决方案:我正在将一个相当庞大的应用程序移植到VisualStudio2010中的10.0CRT(编译器)。该应用程序是使用/clr的托管C++/CLI。大部分代码是原生的(95%),其中有一些托管部分。所以我的工作是在.vcxproj中进行切换以针对较新的10.0CRT(即编译器)。我们以前使用的是v90,或者使用VS2008SP1附带的VC编译器。好吧,这么重大的变化?实际上看起来像一堆。我修复了一些处理集合的迭代器问题,这一切都非常简单。但是这些链接器错误让我很难受。任何帮助将不胜感激:1>MSVCMRTD.lib(loca

c++ - 构建没有 CRT 和默认 header 的控制台应用程序?

我试图在不使用CRT或在任何情况下除kernel32.lib之外的任何其他导入的情况下构建控制台应用程序。我得到了要编译的代码,但无法将链接器包装在一些问题上:unresolvedexternalsymbol@__security_check_cookie@4unresolvedexternalsymbol"int__cdeclFreeLibrary(void*)"(?FreeLibrary@@YAHPAX@Z)unresolvedexternalsymbol"void*__cdeclLoadLibraryW(wchar_t*)"(?LoadLibraryW@@YAPAXPA_W@Z)

c++ - 验证库 (.lib) 中使用的 CRT

如何检查Windows中的静态库(.lib)链接到哪个运行时库?我正在使用/MDd编译我的项目,并且我假设我链接到的库正在使用/MTd多线程调试Error7errorLNK2005:"public:__thiscallstd::_Lockit::~_Lockit(void)"(??1_Lockit@std@@QAE@XZ)alreadydefinedinlibcpmtd.lib(xlock.obj)C:\...\msvcprtd.lib(MSVCP100D.dll)LIBCPMTD.LIB=多线程,静态链接我知道有一个选项/NODEFAULTLIB:"libcpmtd.lib"我已经尝

ios - crt1.3.1.o到底是什么

我使用的是xcode4.5我的BaseSDK是6.0,我的部署目标是5.1。当我尝试构建发布或分析时,我得到了这个小错误。ld:fileisuniversal(4slices)butdoesnotcontaina(n)armv7sslice:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib/crt1.3.1.oforarchitecturearmv7sclang:error:linkercommandfailedwit

java - 如何在 java 中使用由 openssl 生成的 .key 和 .crt 文件?

我需要java中的非对称加密。我使用自己的密码生成.key和.crt文件,并通过http://www.imacat.idv.tw/tech/sslcerts.html中所述的openssl生成.crt文件。.如何使用这些.key和.crt文件在Java中提取公钥和私钥? 最佳答案 您的.key和.crt文件可能是PEM格式。要检查这一点,请使用文本编辑器打开它们并检查内容是否类似于------BEGINCERTIFICATE------(或“开始RSA私钥”...)。这通常是OpenSSL使用的默认格式,除非您已明确指定DER。它可

linux - crt* 文件在链接中的作用是什么?

我们有几个crt*文件,例如/build/csu/crt0.o或/build/csu/crti.o或/build/csu/crtn.o或/build/csu/crtbegin.o或`/build/csu/crtendS.o在构建时与gcc一起使用。谁能给我解释清楚这些文件的作用和功能是什么? 最佳答案 crt文件包含运行时-即调用main函数的代码,处理程序终止,以及一些关于如何布局函数的说明。这是一个miniFAQ. 关于linux-crt*文件在链接中的作用是什么?,我们在Stack