当我使用Tab键或箭头键移动到对话框上的CEdit控件时,控件中的所有文本都被选中.这种行为导致我出现问题,如果控件只将光标放在文本的开头(或结尾)并且没有选择任何内容,我会更喜欢它.有没有一种简单的方法可以做到这一点(例如我可以设置的控件的属性)?
我有一个MFC应用程序,我试图打包部署.它似乎取决于文件'msvcr90.dll','msvcp90.dll'和'mfc90.dll'.分发这些文件的正确方法是什么?
我无法使用合并模块,因为我的安装程序不支持它们.我知道我可以运行VCRedist_x86.exe,但出于各种原因我不想这样做.
据我所知,我唯一的选择是将文件安装为Private Side-by-Side程序集.它是否正确?
根据http://msdn.microsoft.com/en-us/library/ms235317(VS.80).aspx安装私有程序集的正确方法是复制'Microsoft.VC90.CRT'和'Microsoft.VC90 .MFC'文件夹与可执行文件位于同一文件夹中.这是解决问题的正确方法吗?它有效,但以这种方式复制系统文件似乎有点像.任何人都可以向我展示另一个应用程序(或至少是一个演示项目)的例子吗?
最后,我什么时候需要担心为我的应用程序分发.manifest文件?我应该显式安装XML文件,还是以某种方式嵌入我的可执行文件中?
我的公司为第三方提供了一个DLL,它为他们提供了可用于连接我们应用程序的API函数.DLL是用VC9编写的,API函数使用VC的默认调用约定(__cdecl).第三方围绕此界面构建了应用程序.
我现在的任务是编写DLL的更新版本.我们希望DLL具有与旧的完全相同的接口,因此它们可以互换使用.不幸的是,我们的开发环境现在是CodeGear RAD Studio 2007,因此我必须使用它来编写DLL.
最好的解决方案是使旧的和新的DLL都将其函数导出为__stdcall.然后可以重新链接第三方应用程序以期望__stdcall函数,每个人都会很高兴.不幸的是,由于各种原因,这种情况不太可能发生
或者,我可以将我的DLL中的函数声明为__cdecl.第三方期望__cdecl功能,所以这似乎是一个很好的解决方案.遗憾的是CodeGear坚持在__cdecl函数的名称后附加下划线('_').这意味着第三方应用程序必须进行有条件调用,MyApiFunction(...)或者_MyApiFunction(...)取决于它们使用的DLL.
所以我的问题是,如何从我的新DLL导出API函数,使它们是__cdecl并且不带下划线('_')前缀?
我正在将VC++项目从Visual Studio 2005(VC8)迁移到Visual Studio 2008(VC9).解决方案中的某些项目在项目设置的"附加库目录"字段中有第三方库的路径.路径看起来像这样:
..\SomeLibrary\Lib\vc9\x86
如果我可以使用Visual Studio的"属性页宏"来替换编译器版本,那将非常有用,就像我可以使用$(ConfigurationName)替换"Debug"或"Release"一样.像下面这样的东西是完美的:
..\SomeLibrary\Lib\$(CompilerVersion)\x86
不幸的是,我找不到合适的宏.
请注意,当我说"宏"时,我指的是Visual Studio的"Property Page Macros",而不是C/C++预处理器宏.据我所知,您不能在项目设置中使用预处理程序指令.
有谁知道这样做的方法?
我目前正在使用从命令行执行SSIS包(package.dtsx)Dtexec。这很简单:
dtexec /f Package.dtsx
Run Code Online (Sandbox Code Playgroud)
但是,我有一些参数想要传递给程序包,以便在执行过程中使用。该文档暗示这是可能的(即/ Par参数),但尚不清楚。是否可以使用将参数传递给.DTSX文件dtexec?
c++ ×2
visual-c++ ×2
assemblies ×1
borland-c++ ×1
cdecl ×1
cedit ×1
crt ×1
deployment ×1
dll ×1
dtexec ×1
etl ×1
export ×1
mfc ×1
migration ×1
runtime ×1
sql-server ×1
ssis ×1
vc8 ×1