Articles of visual studio 2010

VS2010嵌套msi安装程序

在我的VS2010安装项目中,我希望我的安装程序启动其他msi安装程序,我该怎么做? 例如,我有3个.msi文件,我想与msi捆绑在一起并自动启动。

什么是cmakeconfiguration,将项目types更改为.wixproj?

我正在尝试用cmake构buildwix项目的解决scheme。 但是默认情况下它是生成.vcxproj。 CMakeLists.txt文件中的configuration是什么,将项目types更改为.wixproj。 提前致谢。 我正在使用的configuration是: # ### Minimum required version of the cmake # CMAKE_MINIMUM_REQUIRED(VERSION 2.8) # ### Set the Solution name and the language to support by the project # PROJECT(Transcend) # ### Manage CMake Policy settings # CMAKE_POLICY(SET CMP0015 NEW) # ### Additional library directories # IF( CMAKE_SIZEOF_VOID_P EQUAL 4 ) LINK_DIRECTORIES( ${CMAKE_SOURCE_DIR}/trunk/ext/lib) […]

通过组策略安装VC ++可再发行组件的最佳方式是什么?

这应该是简单的,但似乎是什么。 我希望创build一个安装程序,供那些使用组策略的用户安装产品。 我不知道,如果这一定是一个微星,或EXE。 可以通过组策略安装EXE安装吗? 我和另外一个Wix新手聊过,他似乎认为安装MSI文件是个不错的主意。 我的产品使用Visual C ++ 2010可再发行组件。 我不希望使用合并模块。 这个和这个链接都给出了使用它们的一些缺点。 我反对1)安装用户没有同意的东西,2)没有一个控制面板卸载项目的版本号,用户可以检查,看看他们是否有最新版本。 因此,对于为什么我应该使用合并模块的人来说,我不感兴趣。 如果我要求的是没有合并模块真正不可能的,那么请解释一下原因。 我不知道是否有必要使用引导程序启动EXE安装。 我认为,对于我来说,对于一个拥有这样的表格和描述的MSI来说,这似乎是一件奇怪的事情,不能够仅仅是一个EXE,就是说,这个可再发行的软件已经没有安装了。 如果有必要使用引导程序,我想知道是否有人可以find一个完整的例子,引导程序和Wix代码,为产品安装的例子; 理想情况下,连同编译它们所需的命令行一样,安装一个VC ++ 2010(或可能是2012)程序以及它的可再发行组件(后者被安装为EXE)这样的常见情况。 在Inno Setup Pascal中,我发现这很简单易行,除了组策略部分之外。 除了完整的例子和/或直接的解释,我已经find了任何东西,使用微软安装程序来完成。 不pipe微软说什么,我都会认为这样的安装程序是最佳实践。 我的代码没有pipe理,我想支持XP。 因此,需要安装一些.net的引导程序只会增加另一个未解决的复杂问题层。 静态链接到一个.net库可能不会太糟糕,如果它没有造成太多的开销。 我的MSI安装似乎工作得很好。 我没有意识到,安装一个vcredist_x86.exe将是一个这样一个难以捉摸的解决scheme的问题。 我没有Visual Studio。 我正在使用Qt框架,并安装了Visual Studio来编译我的应用程序。 如果您有引导程序解决scheme,请指定您正在使用的引导程序。 理想情况下,同样的想法可以扩展到多个先决条件,并且可以使用相同的编码模式。 如果有一种方法可以使用合并模块或附加MSI,以便可再发行组件拥有自己的控制面板条目,那么这是可以接受的。 布朗尼指出build议邮件列表,论坛或人口稠密的聊天频道谈论Wix,不需要收到大量不必要的邮件列表stream量。

在64位Windows上编译Tesseract OCR

我正在试图将Tesseract OCR编译成Windows 64位版本的库。 我已经下载了源代码,并使用Visual Studio Express C ++ 2010编译为32位版本,但由于我通常不是C ++程序员,所以我不知道如何转移到编译64位版。 任何帮助将非常感激。 我需要一个64位版本的原因是,我使用它作为需要64位JVM的Java项目的一部分。 Tesseract的32位版本显然不能在64位JVM上运行,但似乎没有正式的64位Windows版本。

在VC ++ 2010环境之外运行时,程序立即崩溃

我有一个程序,我一直在努力了好几个星期,我在过去几天做了一些重大的改变,现在我不知道为什么该程序无法在VC ++ 2010环境之外工作。 当我打开项目时,程序运行完美,从Solution Configurations下拉列表中selectRelease或Debug,然后按F5。 但是,当我从Release / Debug文件夹中获取可执行文件时,将其放在可以访问我正在使用的资源的位置,然后运行它,加载几秒钟,然后显示这个可爱的错误“Project.exe has停止工作 – Windows正在检查问题的解决scheme…“当然,像往常一样,Windows无法find解决问题的办法。 在阅读所有这些代码之前,快速免责声明:虽然错误是由代码的变化引起的,但是由于我一次更改了几件事情,导致它的变化是值得怀疑的 – 我知道这是愚蠢的,但是它发生了。 我已经发布了最可能的错误来源的代码。 滚动到“我的第二个想法:”如果你相信我的编码习惯。 我所做的最近的最新变化涉及我的input处理程序,并通过函数指针(我没有任何经验)整合keybinds。 我在RawInput类中定义了一个函数指针数组,如下所示: typedef void (Application::*AppFunc)(void); typedef void (Application::*AppFuncDelta)(int delta); AppFunc onKeyPress[256]; AppFunc onKeyRelease[256]; AppFunc onMouseButtonPress[5]; AppFunc onMouseButtonRelease[5]; AppFuncDelta onMouseMove[3]; 我已经通过直接在它自己的类定义之上声明原型来将RawInput类提醒给Application类,如下所示: class Application; 我在Application::Initialize()填充这些数组(这里我定义了很多键,所以这里是摘录): m_RawInput->onMouseMove[0] = &Application::mouseMoveX; m_RawInput->onMouseMove[1] = &Application::mouseMoveY; Application::mouseMoveX和Application::mouseMoveY函数接受一个int参数并且不返回一个值。 这些函数在RawInput::Interpret(LPARAM lParam)被调用,如下所示: if (raw->data.keyboard.Flags & RI_KEY_BREAK) //key released { […]

使用nvprof和Visual Profiler进行GPU功耗分析

我可以通过nvidia-smi查看我的K20C的功耗变化,如下所示: ==============NVSMI LOG============== Timestamp : Fri Jan 31 11:45:21 2014 Driver Version : 332.21 Attached GPUs : 2 GPU 0000:04:00.0 Temperature Gpu : 28 C Power Readings Power Management : Supported Power Draw : 16.12 W Power Limit : 225.00 W Default Power Limit : 225.00 W Enforced Power Limit : 225.00 W Min Power […]

WiX安装程序条件编译?

我有两个版本的主要可执行文件: standard和premium 。 为了简化开发,他们通过改变特殊的#definevariables,从Visual Studio中的单个解决scheme构build而成。 现在我很好奇,如果可以用这个项目的WiX安装程序做同样的事情吗? 我基本上需要控制只包含以下xml节点之一: 1:对于standard版MSI: <Product Name='Foobar 1.0 – Standard' Id='8E9CF27F-B92F-4CB3-BBA0-0AAE5376D5EB' UpgradeCode='20A89269-D206-490D-9134-349594662619' Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.'> 然后: <Component Id='MainExecutable' Guid='E1FE2BBE-C72D-4F27-A66D-78417F597D7A'> <File Id='FoobarEXE' Name='FoobarAppStandardl10.exe' DiskId='1' Source='FoobarApplStandard10.exe' KeyPath='yes'> 2:对于premium版本MSI: <Product Name='Foobar 1.0 – Premium' Id='8E9CF27F-B92F-4CB3-BBA0-0AAE5376D5EC' UpgradeCode='20A89269-D206-490D-9134-34959466261A' Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.'> 接着: <Component Id='MainExecutable' Guid='E1FE2BBE-C72D-4F27-A66D-78417F597D7B'> <File Id='FoobarEXE' Name='FoobarAppPremiuml10.exe' DiskId='1' Source='FoobarApplPremium10.exe' KeyPath='yes'> PS。 我显然可以做2个WiX项目…我正在寻求一种方法来做到这一点。

在Visual Studio中静态链接ffmpeg库

我试图在VS2010中的C ++项目中使用ffmpeg,而ffmpeg dev版本提供了.h文件的lib。 我将这些.lib链接到我的项目中,运行.exe文件时需要相应的.dll文件。 但是我想静态链接ffmpeg库,并运行没有.dll的。 我尝试在Mingw上编译windows上的ffmpeg源代码,结果导致一些.a档案文件。 如何获得ffmpeg静态.lib文件? 这是一个64位的程序,所以需要64位的静态库。

如何阅读由Visual C ++ 2010生成的汇编输出?

我有以下C ++代码: int main() { int i; int j; i = 1111; j = 2222; return 0; } 我想查看这个C ++代码编译的汇编代码,所以我select了以下选项: 该选项将输出每个C ++语句,并在其下面直接显示它所对应的汇编指令。 但是有一些C ++语句不符合任何Assembly指令(例如: int i; )。 所以我想在阅读生成的汇编代码时确保以下假设是正确的:

有winsock的发送function块?

是否有可能有winsock的发送function块,直到发送的数据包在另一端收到? 我的最终目标是能够发送5-20MB文件,同时仍然能够在同一连接上发送小1kb数据包。 所以我想我会阻止,直到接收器收到数据包。 这样,如果另一个小包被排队,它将不会被卡住,等待大文件的其余部分被传输。