将c#和c++很好地结合在一起
本文关键字:结合 在一起 很好 c++ | 更新日期: 2023-09-27 18:07:22
我有一个c#解决方案,通过COM访问一个c++项目。项目必须针对特定的处理器,在本例中为x64。我正在使用Windows安装程序来安装应用程序。
我遇到的第一个问题是c++ dll在安装时没有正确注册,程序无法访问它。我通过将c++项目添加到解决方案中来解决这个问题。
有一段时间这是有效的,一切都安装正确,但是当我试图构建时,我开始得到以下警告:
项目中. net框架的目标版本与. net框架启动条件版本'不匹配。. NET Framework 3.5'。的目标版本,更新. net框架启动条件的版本。. NET框架的高级编译选项对话框(VB)或应用程序页面(c#, f#)
如果我尝试忽略警告,安装程序将无法安装。经过一番搜索,我发现c++项目是在。net 4.0中构建的,而我的解决方案使用。net 3.5。我尝试将我的解决方案更改为4.0,但由于某种原因它停止工作,所以我将c++更改为3.5。
这在几个构建中工作,但随后我开始得到以下错误:
Error: LNK1104 cannot open file 'mfc90.dll'.
我将该文件添加到附加依赖项部分,但随后发生了另一个链接错误(mfcs90.dll),并且在添加该错误时,我得到了x86 x64冲突。
我不知道为什么这些解决方案工作了一段时间,然后停止,我似乎找不到一个解决方案,在任何步骤的工作。如果有人看到类似的情况,我将不胜感激。
为了包含Microsoft运行时dll,您不应该简单地将dll包含在应用程序目录中。当dll有不同的依赖关系,并且您可能会遇到不同的冲突和版本控制问题时,这将没有帮助。
我建议为您的应用程序安装运行时dll的方法是在您的MSI中包含官方合并模块。
请参阅以下链接,以获得重新分发运行时库的选项:
http://msdn.microsoft.com/en-us/library/ms235316 (v =应用程序). aspx