Tag: msvcrt

Visual C ++可执行文件并丢失MSVCR100d.dll

我知道这已经被问到在其他地方和答案,但我有MS Visual Studio 2010的问题。我已经开发了一个C ++可执行文件,但如果我运行版本的机器,没有VC ++运行时库(即,msvcr100d.dll),我得到“程序无法启动,因为msvcr100d.dll从您的计算机丢失”错误。 这很奇怪,原因有两个: 为什么它试图与可再发行的debugging版本链接? 我尝试应用此修复程序 ,将运行时库设置设置为/ MT而不是/ MD(multithreadingDLL),但这只会使问题变得更糟(如果手动复制msvcr100d.dll,则表示无法findmsvcp110 .DLL)。 如何将运行时库与我的可执行文件打包,以便可以在没有安装MS VC 2010或可再发行的计算机上运行它? 我知道包含DLL副本的安全风险被认为是一种安全风险,因为它不会被更新,但是我的目标是在短期内将这个可执行文件发送给几个朋友。

如何才能使vcredist_x86重新安装只有在尚未安装?

在我inno安装运行select我强制无声安装MSVCRT。 我不知道如何使它自己安装只有在尚未安装? 这就是我现在所说的: Filename: {tmp}\vcredist_x86.exe; Parameters: "/passive /Q:a /c:""msiexec /qb /i vcredist.msi"" "; StatusMsg: Installing 2010 RunTime…

为什么我的应用程序需要Visual C ++可再发行组件包

我正在Visual Studio中编写一个简单的C++应用程序。 它也有一个设置项目。 它在我的开发机器上运行良好,但是当我在用户的机器上安装这个应用程序时,它需要Visual C++ Redistributable Package 。 我想知道为什么我的应用程序需要C++ Redistributable ? 标准C++运行时库随Windows一起提供,不是吗?

“这个应用程序要求运行时以不寻常的方式终止它”的原因是什么?

有一个常见的错误是由Visual C运行时抛出: 这个应用程序已经请求运行时以不寻常的方式终止它。 请联系应用程序的支持团队获取更多信息。 这个错误信息实际上是什么意思 ? 让我用一个比喻来解释我正在问什么。 如果我看到一条消息: exception:访问冲突(0xc0000005),地址0x702be865 这种访问违规与性骚扰或者试图闯入我的计算机的人无关(不是一般失败是一个准将读我的C驱动程序的准将,或者你可能被拖入监狱执行在Windows 95中的非法操作)。 在这种情况下, 访问冲突对应于常量EXCEPTION_ACCESS_VIOLATION (在winbase.h声明,值为0xC0000005)。 这是一个可能的exception错误代码,可以在EXCEPTION_RECORD结构中返回。 代码ACCESS_VIOLATION意味着程序试图读取或写入内存中不应该存在的地址。 如果你试图从一个从未被分配过的内存地址读取数据,那么你正在做一些非常糟糕的事情 – 而这个例外告诉你。 当程序有一个指向内存的指针时, 通常是不是或者不再是有效的。 解决scheme是停止尝试访问无效的内存。 注意 :我不是问: 为什么程序x得到C0000005错误? 为什么我的代码获取访问冲突? 如何debugging访问冲突? 所以,如果我问你什么原因导致访问冲突 ,你不会告诉我检查堆栈跟踪,或者观察输出窗口,或者发布示例代码。 你会说: “试图访问无效的内存”。 回到我的问题。 以下错误是什么意思: 该应用程序已经请求运行时以不寻常的方式终止。 我(相当)确定Microsoft Visual C运行时库没有函数: void TerminateRuntime(bool UnusualWay); 所以我必须弄清楚它实际上是什么意思: 终止 visual C运行库是什么意思? (msvcrt是一个dll,你不会终止它,你只是不再使用它) 什么是终止MSVCRT 通常的方法? 有人会select以不寻常的方式终止它吗? 是不是今天的不寻常的方式,实际上是过去常用的方式? 如果我(错误地)以一种不寻常的方式终止它,我会怎样做才能以通常的方式终止它? 换句话说:什么错误是MSVCRT捕捉,隐藏在无形的错误信息后面?

我应该与我的应用程序重新分配msvcrt.dll?

我应该重新分配msvcrt.dll与我的应用程序,并使用私人DLL如果一些应用程序的库dynamic依赖msvcrt.dll? 即与系统的msvcrt.dll(DLL地狱)可能的任何不兼容问题? 应用程序是针对Windows Server系统的。

我应该用/ MD还是/ MT编译?

在Visual Studio中,有编译标志/ MD和/ MT,可以让您select所需的C运行时库。 我了解实施中的差异,但我仍不确定使用哪一个。 有什么优点/缺点? 我听说的/ MD的一个好处是,这允许有人更新运行时(如可能补丁安全问题),我的应用程序将受益于此更新。 虽然对我来说,这几乎看起来像一个非function:我不希望人们更改我的运行时间,而不允许我testing新版本! 我很好奇的一些事情: 这将如何影响构build时间? (大概是/ MT有点慢?) 还有什么其他的影响? 大多数人使用哪一个?

如何让密码回显为星号

我想弄清楚如何提示input密码,并让用户input回显为星号( ******** ) 所以最近,我接手了创build一个远程服务器的项目,该服务器可以使用Python中的套接字模块进行连接。 它还没有完成,因为我正在使控制台用于连接到服务器的过程。 我正在尝试做一个login窗口提示用户input他们的用户名和密码,虽然当input密码,我正在寻找星号打印,如普通密码input(即 – Sekr3t echo'd为:* * * * * *)。 经过几天的研究,我差不多完成了,但还有一个最后的错误让我疯狂(我完全无法解决它)。 注 – 我知道有一个getpass模块可以用来取代这个,更容易,但没有echo'd不是我正在寻找。 这里是我到目前为止的密码login代码,我不明白为什么它不回显星号: import msvcrt import sys def login(prompt = '> '): write = sys.stdout.write for x in prompt: msvcrt.putch(x) passw = "" while 1: x = msvcrt.getch() if x == '\r' or x == '\n': break if x […]

解决LNK4098:defaultlib'MSVCRT'冲突

这个警告: LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library 是在Visual Studio中相当常见的警告>我想了解它的确切原因和正确的方法(如果有的话)来处理它。 这出现在一个debugging版本中,用/MDd编译。 该项目链接到像Windows Version.dll和pdh.dll ,它们自己与MSVCRT.dll链接的东西。 显然,我没有这些debugging版本,不能编译它们。 所以我添加/NODEFAULTLIB:MSVCRT到链接器命令行,它实际上删除了警告。 但是这实际上是做什么的? 为什么这是必要的?