天道酬勤,学无止境

由于知道不到mfc110u.dll,无法继续执行代码。

输入 http://www.microsoft.com/zh-CN/download/details.aspx?id=30679 这个网址。
打开之后,要选择“简体中文”,直接点击“下载”按钮就可以了;

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 应用程序无法正确启动(0xc000007b)(The application was unable to start correctly (0xc000007b))
    问题 我有一个正在单台PC上开发的客户端/服务器应用程序。 现在它需要两个串行端口,所以我从朋友那里借了一台PC。 当我构建我的应用程序并尝试运行或调试它时(无论是在Delphi IDE中还是从Windows文件管理器中),它都会出现错误“该应用程序无法正确启动(0xc000007b)”。 谷歌搜索并没有带来太多,但似乎表明这与Delphi无关,并且在其他应用程序中也会发生。 这似乎是由于从64位应用程序调用32位DLL引起的,反之亦然。 两台PC均为Windows 7、64位两者都具有只能处理32位的Delphi Xe2入门版该应用程序可以在我的PC上正常运行,但不能在我朋友的PC上正常运行其他Delphi应用程序在两台PC上均可正常运行 谁能给我一个关于如何追踪的提示? 回答1 首先,我建议您使用依赖关系行程序测试您的应用程序及其依赖项之间是否存在问题 回答2 加载时间相关性无法解决。 调试此问题最简单的方法是使用Dependency Walker。 使用配置文件选项可获取加载过程的诊断输出。 这将确定故障点,并应指导您找到解决方案。 导致此错误的最常见原因是尝试将64位DLL加载到32位进程中,反之亦然。 回答3 这是一个丢失的dll。 可能是,与com端口一起使用的dll具有无法解析的dll依赖性。 您可以使用依赖项遍历器和Windows调试器。 例如,检查所有的mfc库。
  • Microsoft Visual Studio〜C / C ++运行时库〜静态/动态链接(Microsoft Visual Studio ~ C/C++ Runtime Library ~ Static/dynamic linking)
    问题 我是Microsoft Visual Studio用户。 我的问题是关于“ C / C ++运行时库”的。 我使用包含以下代码的“ .cpp”源文件“ main.cpp”创建了一个“空项目”: #include <iostream> int main(void) { std::cout << "Hello World" << std::endl; return 0; } “ iostream是一个头文件,用于以C ++编程语言进行输入/输出。它是C ++标准库的一部分。” “ C / C ++运行时库”和“ C / C ++标准库”之间有区别吗? 我如何知道“ C / C ++运行时库”库是静态链接还是动态链接到项目? 我如何知道该库在文件系统中的位置? 如果“ C / C ++运行时库”是动态链接到项目的,我如何知道使用了哪个“ .dll”以及文件系统中所使用的“ .dll”在哪里? 假设我将“ C / C ++运行时库”静态链接到项目,可以确定从源代码生成的可执行文件将在所有Windows平台(XP / Vista / Seven / ...,32位/ 64)上都可以运行。少量)? 将“ C / C ++运行时库”动态链接到项目的优点/缺点是什么? 应该将“ C / C ++运行时库”静态还是动态链接到项目? 回答1 术语“ C / C ++运行时库”没有任何意义
  • CSDN著名技术专家Visual C++2010开发体验心得——从Visual C++6.0到Visual C++2010见证VC++辉煌时刻
    IT业是一个创造奇迹的行业,IT业也是一个年轻的行业,IT业更是一个不断更新的行业。在2009年,微软已经连续推出Visual Studio2010 beta1 与 Visual Studio2010 beta2 两个版本.目前Visual Studio2010的RC版已经发布, RC版本已经展示了Visual Studio2010的所有新特性与革新,自从Visual Studio 98问世推出以来,Visual Studio 98-> 2002 -> 2003 ->2005 ->2008 ->2010,产品几乎平均2年就要深度的更新一次,带来更加高效的代码生产力,给程序员带来更多新奇与便捷。Visual Studio 2010在2010年4月12日全球5个城市:北京、拉斯维加斯、伦敦、班加罗尔和吉隆坡将同时发布。由于时差关系,北京成为了绝对时间上第一个发布的城市。我们将见证这个辉煌的时刻,正如Visual Studio 98发布的时刻。Visual C++曾经是Visual Studio 6.0中的首席编程语言,Visual C++6.0是中国C++开发人员使用最多的开发工具。 Visual C++是构建Windows平台下应用程序功能最强大而又最复杂的工具,是目前世界上使用最多的开发工具之一,应用极度广泛,从桌面应用程序到服务器程序,从系统软件到应用软件,图形图像,3D游戏
  • Linux中四种进程或线程同步互斥控制方法
    一、Linux中 四种进程或线程同步互斥的控制方法:1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。二、临界区(Critical Section)  保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线 程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操 作共享资源的目的。 临界区包含两个操作原语: EnterCriticalSection() 进入临界区 LeaveCriticalSection() 离开临界区 EnterCriticalSection()语句执行后代码将进入临界区以后无论发生什么,必须确保与之匹配的 LeaveCriticalSection()都能够被执行到。否则临界区保护的共享资源将永远不会被释放。虽然临界区同步速度很快,但却只能用来同步本 进程内的线程,而不可用来同步多个进程中的线程。   MFC提供了很多功能完备的类,我用MFC实现了临界区
  • 未声明该变量,因为其保护级别可能无法访问(variable is not declared it may be inaccessible due to its protection level)
    问题 我的VB技能不是最好的,这个问题让我难过了几天。 在Visual Studio中显示的未在后面的代码中定义的控件列表中,我可以“鼠标悬停”它们,然后会弹出工具提示文本。 类似问题: 这个没有解决方案-未声明'var_name'。 由于其保护级别,它可能无法访问。 在调试模式下 这个人说解决方案在web.config中,但是我不知道在哪里/如何-BC30451:未声明'MailValidation'。 由于其保护级别,它可能无法访问 这是一个拼写错误的单词-vb.net错误:由于其保护级别而无法访问 更新-这是另一个问题,可能是我遇到的问题的线索: 在我的Tools.vb模块中,我有一个访问LDAP的类。 工具类的名称空间在login.aspx.vb代码中给出,但是登录代码无法识别工具类。 回答1 请密切注意错误的第一部分:“未声明变量” 忽略第二部分:“由于其保护级别,它可能不可访问”。 这是一条红鲱鱼。 一些问题...(答案可能在您发布的图像中,但我似乎无法将其放大,而且我的眼睛也看不到那么小的文字...任何机会您都可以以某种方式发布代码这些较老的眼睛可以阅读吗?这使您很难了解整体情况。尤其是我对您的Page指令感到怀疑。) 我们知道1stReasonTypes是一个列表框,但是由于某种原因,我们似乎不知道WHICH列表框。 这就是为什么我要查看您的页面指令的原因。 而且
  • 错误LNK1104:无法打开文件'mfc90.lib'(error LNK1104: cannot open file 'mfc90.lib')
    问题 我正在使用Visual Studio 2012 Professional,并且我的项目引用了用VS2008(v90)构建的静态库。 当我使用VS2012(v110)进行构建时, error LNK1104: cannot open file 'mfc90.lib' 发生错误。 更改平台工具集是解决此问题的唯一方法吗? 我认为这不是解决方案,因为我应该针对.NET Framework 4.5。 (我知道我不能将.NET Framework 4.0与v90一起使用。如果错了,请纠正我) 请让我知道如何在VS2012项目中使用VS2008内置的库。 提前致谢! ps。 如果更改平台工具集是解决问题的唯一方法,那么如何引用使用各种Visual Studio编译器构建的多个库?(例如,使用vs2008,vs2010和vs2012构建的库)? 编辑:我正在编写第三方程序库(本机C ++)的包装程序,以在.NET Framework上运行。 问题是我应该使用VS2012构建,但是使用VS2008构建的库需要mfc90.lib(VS2012中未包含) 回答1 通过链接墨水到mfc110.lib而不是mfc90.lib,我能够在vs2012(从vs2008转换)中构建我的项目。 回答2 我认为MFC库与您定位的.NET Framework版本没有任何关系。 VS2012将具有mfc110
  • 何时在C中使用类似函数的宏(When to use function-like macros in C)
    问题 我今天晚上正在阅读一些用C编写的代码,文件的顶部是类似函数的宏HASH: #define HASH(fp) (((unsigned long)fp)%NHASH) 这让我想知道,为什么有人会选择使用类似函数的宏来以这种方式实现函数,而不是将其实现为常规的普通C函数? 每种实现的优点和缺点是什么? 谢谢一堆! 回答1 这样的宏避免了函数调用的开销。 看起来似乎不多。 但是在您的示例中,根据您的CPU,宏会变成1-2种机器语言指令: 从内存中获取fp的值并将其放入寄存器取寄存器中的值,按固定值进行模量(%)计算,然后将其保留在同一寄存器中 而等效的功能将是更多的机器语言指令,通常是类似 将fp的值粘贴到堆栈上调用该函数,该函数还将下一个(返回)地址放入堆栈中也许根据CPU架构和ABI约定在函数内部构建堆栈框架从堆栈中获取fp的值并将其放在寄存器中取寄存器中的值,通过固定值进行模量(%)计算,然后将其保留在同一寄存器中也许从寄存器中获取值,然后将其放回堆栈,具体取决于CPU和ABI 如果已构建堆栈框架,请展开它将返回地址弹出堆栈,然后在此处继续执行指令 还有更多代码,是吗? 如果您正在执行某种操作,例如在GUI的窗口中渲染成千上万个像素中的每个像素,那么如果使用宏,则运行的速度将大大提高。 就我个人而言,我更喜欢使用C ++内联,因为它更具可读性,并且不易出错
  • Visual Studio 2012 C ++标准输出(Visual Studio 2012 C++ Standard Output)
    问题 编译Win32应用程序时,在Visual Studio中fprintf(stdout / stderr)打印到哪里? 我一直在听它进入输出,但我看不到它! 在c ++中没有控制台窗口的情况下,打印到输出日志的标准方法是什么? 回答1 如果您的程序与/ SUBSYSTEM:WINDOWS链接,则除非分配了控制台,否则不会看到控制台输出。 这是分配控制台选项的代码。使用此方法,您无需弄乱链接器设置或创建WinMain。 static void OpenConsole() { int outHandle, errHandle, inHandle; FILE *outFile, *errFile, *inFile; AllocConsole(); CONSOLE_SCREEN_BUFFER_INFO coninfo; GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo); coninfo.dwSize.Y = 9999; SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize); outHandle = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE
  • vlc的应用之八:MFC调用libvlc.dll
    请移步https://higoge.github.io/,所有下载资料在那个博客都能找到。谢谢。 -------------------------------------------------------------------- 本篇博客将简单介绍MFC调用libvlc.dll作一个简单的播放器,抛砖引玉,各位VC++达人继续深入研究,Jeremiah对VC++确实不太感兴趣,所以就不做太深入的研究了。 2009.10.29修改:加入clip_children属性设置。参考第1步。2010.04.14修改:中文路径问题。参考第7步。 环境: 1) VC6 SP5 2) vlc-0.9.9a 0. 引言 根据上一篇博客的研究,任何一个VC环境都可以调用MinGW/Gcc编译得到的libvlc.dll。VLC在编译打包之后(也就是执行完make package-win32-base),或者去官网下载zip包解压之后,或者是安装完VLC之后,在vlc-0.9.9a目录下有个sdk文件夹,里面又包含两个文件夹:include--头文件及lib--库。这些都是我们用MFC调用libvlc.dll所必须的。头文件没啥好说的,库里面的libvlc.dll.a及libvlccore.dll.a就是上一篇博客所说的静态库,我们分别手动改成libvlc.lib及libvlccore
  • 未解决的外部噩梦(Unresolved Externals Nightmare)
    问题 您好,行业资深人士, 我是一名大学三年级的学生,正在进行我的第一个夏季编程实习,现在我已经不知所措了。 我正在工作的公司从另一家公司购买了一个庞大的应用程序,自90年代初以来,该应用程序一直在缓慢地进行扩展和修改。 该解决方案包含200,000多行代码,这些代码分布在300多个文件中。 整个解决方案据称已按照ANSI-C ++标准编写。 该代码几乎是完全未记录的文档,对我而言,大多数看起来像象形文字。 最终,我的工作是将该代码移植到嵌入式Linux。 目前,我的工作只是在Windows XP上使用Visual Studio 2008对其进行编译。 今天,我遇到了这样的链接器错误: libcmtd.lib(sprintf.obj) : error LNK2005: _sprintf already defined in msvcrtd.lib(MSVCR90D.dll) 我的理解是,当使用不同的运行时库编译解决方案中的不同项目时,通常会发生这种情况。 我的解决方案中有6个项目。 其中4个设置为使用多线程调试DLL运行时库(/ MDd)进行编译,其中之一设置为使用多线程调试库(/ MTd)进行编译,其中之一设置为使用多线程dll运行时库(/ MD)。 收到此错误消息后,我尝试做的第一件事是将/ MTd和/ MD开关更改为/ MDd,以便所有内容都可以使用相同的运行时库进行编译。
  • 【DB宝1】Windows安装MySQL提示由于找不到MSVCP120.dll,无法继续执行代码
    ♣ 导读在一个全新的Windows环境中安装MySQL,结果报错“由于找不到MSVCP120.dll,无法继续执行代码.重新安装程序可能会解决此问题”。 ♣ 正文 解决方案1:(1)这是因为没有安装微软常用运行库合集64位导致的,点击如下链接https://www.microsoft.com/zh-CN/download/details.aspx?id=40784进入微软下载中心,下载vcredist.(2)下载相应版本,ARM也就是ARM处理器。X86表示的是CPU指令集类型。x64全称”x86-64”也 是CPU的指令集类型。这里选第二个程序x64即可; 点击下载,安装即可,安装好后,再执行安装命令。解决方案2:直接下载安装“微软常用运行库64位”后再执行安装程序。(1)下载微软常用运行库64位; (2)正常安装此程序即可,之后选择下一步; (3)如若不清楚选择哪些组件,那么选择推荐安装即可,而后选择下一步; (4)等待安装,结束;之后重新执行安装程序即可。注:我使用的是方案二解决问题的。★DB宝分享的IT资料:https://mp.weixin.qq.com/s/Iwsy-zkzwgs8nYkcMz29ag★DB宝笔试面试详解:https://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w ● 本文作者:小麦苗,只专注于数据库的技术
  • 超越堆栈采样:C ++ Profiler(Beyond Stack Sampling: C++ Profilers)
    问题 黑客的故事 日期是2010年12月2日。 圣诞节前的日子不多了,作为Windows程序员,我几乎遇到了一个主要障碍。 我一直在使用AQTime,尝试过困倦,发亮并且非常困倦,正如我们所说的,VTune正在安装。 我曾尝试使用VS2008 Profiler,但它一直在积极地惩罚着人们,而且常常是愚蠢的。 我使用了随机暂停技术。 我已经检查了呼叫树。 我已经解雇了功能痕迹。 但是令人悲伤的事实是,我正在使用的应用程序超过一百万行代码,可能还有另外一百万行价值的第三方应用程序。 我需要更好的工具。 我已经阅读了其他主题。 我已经尝试了每个主题中列出的每个事件探查器。 仅仅是必须有比这些垃圾和昂贵的选择更好的东西,或者可笑的工作量几乎没有收益。 更复杂的是,我们的代码使用了大量线程,并运行许多Qt Event循环,其中一些非常脆弱,以至于由于定时延迟而在繁重的测试中崩溃。 不要问我为什么我们要运行多个事件循环。 没有人能告诉我。 在Windows环境中,Valgrind还有更多选择吗? 有没有比我已经尝试过的一堆破烂的工具更好的东西了? 是否有任何旨在与Qt集成的东西,也许可以对队列中的事件进行有用的显示? 我尝试过的工具的完整列表,以及在斜体中真正有用的工具: AQTime:很好! 深度递归会遇到一些麻烦,但是在这些情况下,调用图是正确的,并且可以用来消除您可能遇到的任何混乱。
  • 何时选择已检查和未检查的异常(When to choose checked and unchecked exceptions)
    问题 在Java(或任何其他具有检查的异常的语言)中,当创建自己的异常类时,如何决定应将其选中还是取消选中? 我的直觉是,在调用者可以以某种有生产力的方式恢复的情况下,将要求使用检查异常,而对于无法恢复的情况,非检查异常会更多,但是我会对其他人的想法感兴趣。 回答1 只要您知道何时应使用检查异常,它就很棒。 Java核心API未能遵循SQLException(有时甚至是IOException)的这些规则,这就是它们如此糟糕的原因。 检查异常应该用于那些合理歇着可预见的,但不可预防的错误。 未经检查的异常应用于其他所有内容。 我将为您详细说明这一点,因为大多数人都误解了这意味着什么。 可预测但无法预防:调用方在力所能及的范围内竭尽所能来验证输入参数,但其控制范围之外的某些情况导致操作失败。 例如,您尝试读取文件,但是在您检查文件是否存在到读取操作开始之间有人将其删除。 通过声明一个检查的异常,您就是在告诉调用者该失败。 合理地恢复:没有任何必要告诉呼叫者预见他们无法恢复的异常。 如果用户尝试从不存在的文件中读取,则调用者可以提示他们输入新的文件名。 另一方面,如果该方法由于编程错误(无效的方法参数或错误的方法实现)而失败,则应用程序无法采取任何措施来解决执行中的问题。 最好的办法是记录问题并等待开发人员稍后解决。 除非您抛出的异常满足以上所有条件,否则应使用Unchecked
  • 我的程序被avast防病毒软件阻止(My programs are blocked by avast anti-virus)
    问题 我是一名业余程序员,由于一个大问题,我感到绝望和生气:我的大多数程序都被avast防病毒软件阻止,而有些则不是,我也不知道为什么。 我尝试调查的次数越多,对可能出现的问题的了解就越少。 我请求您的帮助以找到解决方案,以便不再阻止我的程序,或者默认情况下,至少提供一些有力的线索来解释为什么会这样。 网上已经有很多关于这个的话题。 但是,它们中的大多数仅给出了肤浅的答案:它们只是说明防病毒如何与签名和检测试探法一起使用,或者声明您只需将有问题的应用程序添加到白名单中,而无需提出任何其他问题。 尽管这确实是正确的,但就我的感觉而言,这不是可接受的答案,因为我仍然留下了自己的程序,这些程序在没有任何具体想法开始调查的情况下仍拒绝工作。 首先,唯一阻止我的程序的防病毒软件是avast7.x。 没有其他杀毒软件给我的软件带来任何不便。 其次,我还没有自欺欺人。 它安装在朋友的机器上。 我有Windows 7,他有Windows XP。 我完全确定问题只是严重的:当它被暂时禁用时,或者如果将该程序添加到其白名单中,一切都会按预期进行。 三种不同的程序遇到了麻烦: 文本编辑器,旨在替换Windows记事本,同时保持简单,高效和可自定义小型业余音频播放器,使用非常简单在线游戏平台的客户端程序,当前拥有1000多个用户 第一个是开源的,如果需要,我可以提供指向可执行文件和源代码的链接。
  • Visual Studio-继续编辑后出现错误“找不到元数据文件'XYZ'”(Visual studio - getting error “Metadata file 'XYZ' could not be found” after edit continue)
    问题 我偶然发现了一个非常烦人的问题。 当我调试软件时,一切运行正常,但是如果遇到断点并编辑代码,则在尝试继续运行时出现错误: Metadata file 'XYZ' could not be found 环顾了一会后,我发现了一些类似的问题,但它们都与构建失败有关,这不是我的情况(这种情况仅在继续编辑后才会发生)。 到目前为止我尝试过的是: 我的代码正在编译并运行。 我清理了解决方案,然后重新启动了VS。 我确保正在为我正在运行的配置(在配置管理器中)构建缺少文件的项目。 我手动建立了丢失文件的项目。 一些额外的信息: 不管我更改什么,仍然会得到相同的错误(更改与丢失的文件无关)。 当我暂停并继续时(不仅是断点),也会发生这种情况我正在使用自定义配置(配置管理器...)运行项目。 当我使用默认的Debug配置运行它时,不会发生此错误。 有任何想法吗? 回答1 最终解决问题的是: 单独清洁每个项目(右键单击>清洁)。 分别重建每个项目(右键单击> Rebuild )。 重建启动项目。 我猜出于某种原因,仅清洗解决方案会产生与单独清洗每个项目不同的效果。 编辑: 根据@maplemale注释,似乎有时还需要删除和重新添加每个引用。 更新2019: 过去,这个问题引起了很多关注,但自VS 2017发布以来,似乎很少受到关注。 因此,另一个建议是-更新到VS的较新版本(> = 2017)
  • 使用Visual Studio 2012并使用较旧的平台工具集进行编译?(Use Visual Studio 2012 and compile with older platform toolset?)
    问题 问题 我正在使用Visual Studio 2012开发C ++ DLL。 在某些计算机上,无法加载这些DLL,因为缺少设置为“ v110”的平台工具集。 我试图安装较旧的c ++运行时。 他们没有安装,因为“已经安装了较新的版本”。 我还安装了当前的Windows SDK,但是除了v110之外,没有其他项目可供选择。 问题 如何使用旧版本的C ++运行时编译我的C ++ DLL,使其可以在非开发人员的计算机上运行? 回答1 根据MSDN上的此页面,您需要具有相应的Visual Studio版本(2008或2010),或具有用于“平台工具集”的相关Windows SDK下拉列表,以列出这些版本: 若要更改目标平台工具集,必须安装关联的Visual Studio版本或Windows Platform SDK。 您似乎也对“平台工具集”感到有些困惑,后者控制着哪个编译器/链接器/等。 用于构建您的应用程序,以及用于运行应用程序所需的“ Visual C ++ Redistributable”。 您不能在用户的PC上安装“平台工具集”,也不能通过在开发PC上安装特定的“ Visual C ++可再发行组件”来使它可用。 而且,据我所知,Visual C ++可再发行组件不包括MFC运行时。 它们可作为单独的MSI合并模块(MSM)使用。 回答2 我想分享一些信息,我碰到了这些信息
  • 多线程实例
    多线程实例 2013-08-29 23:39 狂师 阅读(199) 评论(0) 编辑 收藏 VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序:  新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为 “延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond(){Sleep(6000); //延时6秒}  编译并运行应用程序,单击“延时6秒”按钮,你就会发现在这6秒期间程序就象“死机”一样,不在响应其它消息。为了更好地处理这种 耗时的操作,我们有必要学习——多线程编程。二、多线程概述  进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成 ,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。  线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,比如说 main或WinMain函数,将程序的启动点提供给Windows系统。主执行线程终止了,进程也就随之终止。
  • 由于找不到vcruntime140.dll,无法继续执行代码
    https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads 下载文件,并安装。 来源:https://blog.51cto.com/u_15194128/2761814
  • 错误LNK2005:_DllMain @ 12已在MSVCRT.lib中定义(error LNK2005: _DllMain@12 already defined in MSVCRT.lib)
    问题 我收到此链接器错误。 mfcs80.lib(dllmodul.obj):错误LNK2005:_DllMain @ 12已在MSVCRT.lib(dllmain.obj)中定义 请告诉我消除此错误的正确方法。 我在Microsoft支持网站上阅读了有关此bug的解决方案,但并没有太大帮助。 我正在将VS 2005与Platform SDK一起使用 回答1 如果您彻底阅读了链接器错误并应用了一些知识,则可以自己解决: 链接器将许多已编译的对象和库链接在一起以获得二进制文件。 每个对象/库描述 它期望在其他对象中出现什么符号它定义了什么符号 如果两个对象定义了相同的符号,则将出现此链接器错误。 在您的情况下,mfcs80.lib和MSVCRT.lib都定义_DllMain @ 12符号。 摆脱错误: 找出您实际需要的两个库中的哪个了解如何告诉链接器不要使用另一个链接器(例如,使用James Hopkin的技巧) 回答2 我有相同的错误消息,但是这里没有答案可以为我解决。 因此,如果在创建使用MFC的DLL项目时遇到此问题,则可以通过输入以下行来解决: extern "C" { int _afxForceUSRDLL; } 到定义了DllMain的cpp文件。 然后使用您自己的DllMain实现,而不是dllmain.obj中的实现。 当我们尝试使用MFC库时
  • Visual C ++可执行文件和缺少MSVCR100d.dll(Visual C++ executable and missing MSVCR100d.dll)
    问题 我知道已经在其他地方提出了这个问题并得到了答复,但是我在使用MS Visual Studio 2010时遇到了问题。我已经开发了C ++可执行文件,但是如果我在没有VC ++运行时库的计算机上运行Release版本(即msvcr100d.dll),我收到“程序无法启动,因为您的计算机缺少msvcr100d.dll”错误。 这很奇怪,原因有两个: 为什么要尝试与可再发行版本的调试版本链接? 我尝试应用此修复程序,将运行时库设置设置为/ MT而不是/ MD(多线程DLL),但这只会使问题更严重(如果我手动复制了msvcr100d.dll,然后它说找不到msvcp110 .dll)。 如何将运行时库与可执行文件打包在一起,以便可以在未安装MS VC 2010或可再发行组件的计算机上运行它? 我知道包含DLL的副本被视为安全隐患,因为它永远不会被更新,但是我的目标是在短期内将此可执行文件发送给几个朋友。 回答1 如果以“发布”模式进行编译,则绝对不需要CRT的调试版本。 您可以说它们是DLL的调试版本,因为它们以d结尾。 更重要的是,调试版本无法重新分发,因此它不像将其与可执行文件“打包”或压缩这些DLL那样简单。 检查以确保您以“发布”模式编译应用程序的所有组件,并确保链接了正确版本的CRT和您使用的任何其他库(例如MFC,ATL等)。 当然,您将需要msvcr100.dll