小编Pre*_*cco的帖子

"包含目录"和"其他包含目录"之间的区别是什么?

在我的项目的配置属性中,在"VC++目录"下有一个"包含目录"条目.但在"C/C++"选项下,还有另一个名为"Additional Include Directories"的条目.库目录也会发生同样的事情.

这两个条目有什么区别?

在此输入图像描述 在此输入图像描述

c++ compilation visual-studio-2010 visual-studio

91
推荐指数
4
解决办法
4万
查看次数

如何使用DataSet值填充SSRS TextBox?

亲爱的社区成员,

给定一个特定的密钥(例如"user_name"),如何TextBox用相应的DataSet 填充SSRS (例如"John Doe")?

您将提供的任何见解将不胜感激!

CONTEXT

  • SQL Server = 2008 R2
  • IDE = Visual Studio 2012
  • ReportData DataSet包含用于填充Tablix报表正文中的数据的数据
  • HeaderData DataSet包含用于填充TextBox报表标题中的两个元素的 数据
    • DataSet包含两列:

约束

  • 对于这个特殊的问题,我不能简单地将HeaderData 绑定DataSetTablix报表头中的a ...我必须填充TextBox元素
  • 如果报表包含多个DataSets,并且您Fields在表达式中引用该集合...您将收到"文本框用户的值表达式,不带范围的聚合表达式"错误.

样本数据

HeaderData

Key ="camera_name",Value ="Panomera - Terminal 1"

Key ="user_name",Value ="John Doe"

reporting-services

12
推荐指数
1
解决办法
3万
查看次数

"目标平台版本"对于VS C++项目意味着什么?

背景

据我所知,在C++项目中:

  • 项目属性=>配置属性=>常规=> 平台工具集
    • 告诉编译器物理编译哪个SDK.
    • 例如:v140将告诉Visual Studio 2015使用最新最好的v8.1 Windows SDK
  • _WIN32_WINNT,WINVERNTDDI_VERSION
    • 根据底层操作系统,SDK功能可以在OS到OS之间具有不同的功能签名.
    • SDK被认为是向后兼容的.1
    • 前面提到的宏使您能够指定要编译的函数的版本.

我的问题

如果我使用以下设置编译我的应用程序:

  • project properties => configuration properties => General => Platform Toolset
    • 设置为:v140_xp(Visual Studio 2015 - Windows XP)
    • 设置告诉编译器使用7.1 SDK,这是有道理的.
  • 内容: StdAfh.h
    • #include <WinSDKVer.h>
    • #define _WIN32_WINNT 0x0501
    • #define WINVER 0x0501
    • #define NTDDI_VERSION 0x05010000
    • #include <SDKDDKVer.h>
    • 宏告诉编译器使用哪些函数签名,这是有道理的.

从我可以告诉,它看起来像目标平台版本是suposed是一种替代_WIN32_WINNT,WINVERNTDDI_VERSION宏.奇怪的是,通过上面的配置,您可以将目标平台版本设置为199...并且编译器不会生成任何错误或警告.

这本让我纳闷:什么是目标平台版本呢?

附加背景

  • 编译器:Visual Studio …

sdk visual-c++ visual-studio-2015

11
推荐指数
1
解决办法
6338
查看次数

WPF:Content和DataContext属性之间有什么区别?

据我了解......

  • DataContext属性
    • "控件使用此属性作为数据源"
    • "是每个框架元素具有的属性,可用于将数据流入屏幕"
    • "DataContext具有范围"
    • "范围是根据DataContext在对象树中的分配位置建立的"
    • "如果在父元素(例如Window)上设置DataContext,该属性将向下流向所有子元素(例如文本框)"
  • 内容属性
    • 此属性具有许多名称,具体取决于正在使用的控件:
      • ContentControl.Content
      • ItemsControl.ItemsSource
      • Items.ItemsSource
      • HeaderedContentControl.Header
      • HeaderedContentControl.Content

所以我的问题是:属性有什么区别ContentDataContext?这里有一个我很遗憾的细微差别.是吗...

  1. DataContext流数据流入UI时,
  2. Content属性的工作是确定(通常是一个绑定)将显示的内容(通过ContentPresenter + ContentTemplate)

示例代码

<Window x:Name="myWindow" DataContext="{Binding ClassA}> 
    <StackPanel> <!-- DataContext is set to ClassA -->

        <!-- DataContext is set to ClassA, ClassA.Name will be displayed -->
        <Label Content="{Binding Name}" />
    </StackPanel>
 </Window>
Run Code Online (Sandbox Code Playgroud)

参考

.net c# wpf

7
推荐指数
1
解决办法
3578
查看次数

如何在团队环境中管理大型C++依赖项?

背景

在我的职业生涯中,我惊讶于有多少项目我在Visual Studio中编译和执行项目是一个真正的挑战.问题的根源通常是由于:缺少依赖性,缺少文档,缺少项目引用等.

为了避免这些麻烦,我尝试自动化项目/解决方案,以便:

  1. 在开发人员计算机上编译项目时自动设置运行时环境(例如,使用批处理脚本导入缺少的Windows注册表项)
  2. 在编译项目时,会自动检索正确的依赖项(在构建计算机和开发人员计算机上)

问题

到目前为止,我采用这种方法取得了相当大的成功.但是,我最近获得了一个依赖于Microsoft Windows SDK的本机C++项目.在编译时,项目使用Windows环境变量来查找缺少的依赖项(例如Microsoft Windows SDK).

我知道使用环境变量是以往的工作方式.但是,依靠软件开发人员来配置开发环境:

  • 您假设他们将正确配置环境
  • 当他们的时间可以更好地用于开发时,开发人员正在浪费时间进行配置

我不想讨论让开发人员配置开发环境的优点,而是我想知道:

鉴于目前存在的技术(例如TFS),在团队环境中为C++项目处理大型依赖项(例如Windows SDK)的可靠且可重复的方法是什么?

潜在的解决方案

  1. 继续使用环境变量
    • 高级:一旦安装了依赖项,构建机器就很容易编译项目
    • Dis:您必须花时间记录以确保您可以从头开始配置构建机器(例如,步骤1:安装依赖关系A,步骤2:安装依赖关系B等)
    • Dis:您依靠魔术环境变量来指向正确的目标.
    • Dis:开发人员在开发时会浪费时间进行配置
  2. 检查依赖关系到TFS
    • 高级:一切都保存在一个集中的位置
    • 高级:通过设计,源代码控制保持了历史
    • 高级:从某种意义上说,源代码控制使事情自我记录
    • Dis:由于构建机器工作区必须从TFS重复检索Windows SDK,因此在构建机器上进行编译现在需要相当长的时间
  3. 其他?

CONTEXT

  • 编程语言:非托管C++
  • 源控制:TFS 2012
  • 依赖关系:
    • Microsoft Windows SDK(~416Mb)
    • 在内部图书馆
  • 我对如何管理/配置TFS构建机器知之甚少.

参考

c++ build-automation tfsbuild dependency-management tfs2012

5
推荐指数
1
解决办法
1311
查看次数

如何忽略 NDepend 中的 .NET 程序集?

背景

随着时间的推移,我发现自己越来越多地转向NDepend来深入了解遗留应用程序的设计/实现。

问题

有没有JustMyCode办法永久配置NDepend(在项目级别)以简单地忽略 .NET Framework,而不是添加到 CQL 查询?我可能是错的,但我很确定NDepend v3支持此功能。

例子

  1. 在 Visual Studio 中打开您的解决方案并单击“重建”
  2. 根据您的解决方案文件 (*.sln)创建NDepend项目
  3. 运行分析
  4. 打开交互式(非 HTML)依赖关系图
  5. 单击左上角的重置箭头(提示:回收图标)
  6. 单击仅重置为应用程序程序集
  7. 观察
    • 您将不再看到对 .Net Framework 的引用(注意:蓝色字体消失了)
  8. 右键单击您的程序集之一:选择类型
  9. 点击我直接使用
  10. 以下 CQL 将出现在查询窗口中:
    • from t in Types where t.IsUsedBy ("MyCompany.MyProduct.MyAssemblyName") select new { t, t.NbILInstructions }
  11. 观察
    • 您现在很可能会在查询结果窗口中看到 .NET Framework 引用(注意:蓝色字体又回来了)
    • 将 JustMyCode 添加到 CQL 查询中,.NET 引用再次消失:from t in JustMyCode.Types where t.IsUsedBy ("MyCompany.MyProduct.MyAssemblyName") select new …

ndepend

5
推荐指数
1
解决办法
1243
查看次数

应该如何实现`ICommand.CanExecuteChanged`?

背景

在查看 Josh Smith 关于 的文章时CommandGroup,我注意到互联网上有许多关于如何实施ICommand.CanExecuteChanged.

在 StackOverflow 上发布一个类似的问题,但是

  1. 我觉得没有明确的答案,而且
  2. 评论中没有足够的空间来添加额外的上下文。

以供参考:

  1. Josh Smith关于使用简单 .NET 事件的原始文章CommandGroup
  2. 约什-史密斯的RelayCommand使用CommandManager 实现CanExecuteChanged
  3. 微软自己的RoutedCommand使用CommandManager 实现CanExecuteChanged
  4. Microsoft 自己的 PRISM 库(版本:6)也使用了一个简单的 .NET 事件(以前的版本使用弱引用)

我的问题

我对 WPF 比较陌生,我想知道CanExecuteChanged应该如何在 Josh Smith's 中实现该事件CommandGroup以避免任何意外行为或内存泄漏?

补充阅读

Josh Smith:使用 CommandGroup 聚合 WPF 命令

Josh Smith:采用 MVVM 设计模式的 WPF 应用程序

StackOverflow:Josh Smith 的 RelayCommand 实现有缺陷吗?

StackOverflow:评论关于 CanExecuteChanged

微软:路由命令

棱镜 6:DelegateCommandBase

c# wpf weak-references mvvm relaycommand

5
推荐指数
1
解决办法
1425
查看次数

MPEG-DASH和RTSP有什么区别?

  • 实时流协议(RTSP) - 是一种媒体播放控制协议.可与RTSP结合使用的其他协议包括:
    • 实时传输协议(RTP) - 用于通过IP网络传送多媒体(例如音频和视频流)的分组格式.RTP是RTCP的姐妹协议.
    • RTP控制协议(RTCP) - 用于监视传输指标和服务质量(QoS),同时帮助多个流的同步.RTCP是RTP的姐妹协议.
    • 会话描述协议(SDP) - 由RTSP等协议用于在握手的初始化阶段描述媒体流.

正如我将上述协议归结为1或2个句子一样,我希望有人能够回答:用外行人的话说,MPEG-DASH和RTSP有什么区别?

从高层次来看,MPEG-DASH似乎是RTSP + RTP + RTCP + SDP的替代品.

media streaming protocols rtsp mpeg-dash

3
推荐指数
1
解决办法
5131
查看次数

你应该:#import还是"添加新参考"?

在过去,我习惯于#import访问动态链接库(即*.DLL)所公开的函数.现在看来Visual Studio有一个新的Add New Reference选项.

Project => Property Pages => Common Properties => References

我的问题是:我应该使用哪种方法?

参考

以下方法用于公开我们库中的函数:

更新1

我注意到的一件事是:与C#不同,您可以在(1)GAC中的程序集,(2)文件系统上的程序集,(3)解决方案中的项目中添加引用.看来在C++中,您只能在当前解决方案中添加对项目的引用.

c++ visual-c++ visual-studio-2013

2
推荐指数
1
解决办法
447
查看次数

为什么调用 `Dispatcher.Invoke()` 时 WPF 选项卡会变得“无响应”?

无响应标签视频

据我了解,WPF“消息”(例如按钮单击处理程序)被添加到内部优先队列中。然后,单个 UI 线程负责处理排队的消息。

不幸的是我对 WPF 的了解不够深入,无法理解该框架的内部工作原理。所以我的问题是,鉴于只有 1 个线程处理消息......

  • 导致选项卡无响应的内部事件顺序(高级)是什么?

观察到的行为

  1. 如果您缓慢单击,则会TabControl按预期运行。
    • 重现:每 4 秒单击 1 个选项卡。
    • 看起来,如果您给TabControl.SelectedIndex数据绑定一个完成的机会,控件将按照设计运行。
  2. 如果您快速单击选项卡,则某些选项卡将变得无响应。
    • 重现:在 3 秒内单击尽可能多的选项卡。

补充阅读

示例代码

以下代码可用于重现该行为,从而永久选择 WPF 选项卡。

粘贴到MainWindow.xaml

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="30" />
            <RowDefinition Height="*" />
            <RowDefinition Height="30" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <WrapPanel Grid.Row="0">
            <TextBlock>
                1. Click on as many tabs as possible within 3 seconds.<LineBreak/>
                2. Wait until multiple tabs are selected.<LineBreak/> …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

1
推荐指数
1
解决办法
408
查看次数