小编キキジ*_*キジキ的帖子

directx标头和winerror.h之间的宏定义冲突

我在使用Visual Studio 2012的Windows 7上.

当我编译时,我得到了很多由winerror.h和dxgi.h,dxgitype.h,d3d11.h,d3d10.h引起的宏重定义警告.例如DXGI_STATUS_OCCLUDED,DXGI_STATUS_CLIPPED,DXGI_STATUS_NO_REDIRECTION等.

我想这是因为安装了windows sdk 8.我怎么能避免这个?有没有办法可以从我的项目中排除这些新库?

c++ winapi directx-11 visual-studio-2012

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

手动释放ComPtr

我正在使用ComPtr(Microsoft :: WRL)来管理一些DirectX11资源.我该如何手动释放它?

如果我理解正确的话,"ReleaseAndGetAddressOf"方法只释放指针而不释放资源本身(返回),我不确定"重置"方法.

我能想到的唯一选择是手动调用指针析构函数,或者从"ReleaseAndGetAddressOf"获取原始指针后调用"Release",我想避免.

c++ com

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

准备最终的未来自定义内存分配器

我的项目是使用vs2012的c ++ 11.现在我觉得不需要使用自定义内存管理,但是我应该采取什么安排来促进最终的未来修改?

我想为一个宏使用"new"/"new []"/"delete"/"delete []"和typedef用于容器和智能指针.

什么是最佳做法?

c++ memory-management c++11

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

lpeg解析一阶逻辑项

正如标题所说,我正在尝试解析例如

term(A, b, c(d, "e", 7))
Run Code Online (Sandbox Code Playgroud)

在Lua表中

{term, {A, b, {c, {d, "e", 7}}}}
Run Code Online (Sandbox Code Playgroud)

这是我建立的语法:

local pattern = re.compile[=[
  term      <- variable / function
  argument  <- variable / lowercase /number / string
  function  <- {|lowercase {|(open argument (separator (argument / function))* close)?|}|}
  variable  <- uppercase
  lowercase <- {[a-z][A-Za-z0-9]*}
  uppercase <- {[A-Z][A-Za-z0-9]*}
  string    <- '"' {~ [^"]* ~} '"'
  number    <- {[0-9]+}
  close     <- blank ")"
  open      <- "(" blank
  separator <- blank "," blank
  blank     <- " "*
]=]
Run Code Online (Sandbox Code Playgroud)

我遇到以下问题: …

lua peg first-order-logic lpeg

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

从java列表中删除相同的项目

我有一个项目列表,其中每个项目都是一个包含2个公共字符串的简单类.我有一个equals方法,只使用两个字符串的equalsIgnoreCase methot.

public class data
{
    public String a;
    public String b;

    public boolean equals(data d)
    {
        if(a.equalsIgnoreCase(d.a) && b.equalsIgnoreCase(d.b))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够删除一个元素,即使它与列表中的元素不同,但是等于它.

现在我这样做:

public void remove(data dataToRemove)
{
    for(data i : _list)
    {
        if(i.equals(dataToRemove))
        {
            _list.remove(i);
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

java collections

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

在Lua中使用assert和pcall

根据是否出现错误,pcall(function)可能会返回:

成功:true和函数的返回值[s].
失败:错误和错误.

在我的情况下,我正在调用一个函数来返回一个表,所以如果没有错误,我将从第二个返回值获取我的数据,如果出现错误,我将打印管理错误.

我怎么能用断言来做?

起初我写了这个:

local ret, data = pcall(the_function)
assert(ret, "Error: "..data)
-- use data from here on.
Run Code Online (Sandbox Code Playgroud)

问题是即使在成功的情况下也会评估断言消息,因此当调用成功时,Lua会抱怨将字符串与表连接.

这个问题是由于我想使用assert并引用错误,但避免使用类似的东西if not ret then assert(false, "...") end.

lua

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

WPF图像控制剪辑

我在自定义ContentControl中有一个Image控件,我用它来应用一些变换(通过RenderTransform缩放和翻译).问题是,如果图像大于控件的区域,如果我滚动或缩小它的全部剪切,就像在原始视口中一样.

有没有办法强制图像完全自我绘制?(已经尝试将ClipToBounds设置为false)

顺便说一句,如果我尝试将图像作为画布的背景,它可以正常工作.

编辑,这是一些细节.

我的控制:

public class CustomControl: ContentControl
Run Code Online (Sandbox Code Playgroud)

设置阶段:

source = VisualTreeHelper.GetChild(this, 0) as FrameworkElement;
...
source.RenderTransform = this.transformGroup;
Run Code Online (Sandbox Code Playgroud)

变换组由平移和缩放变换组成.

xaml部分是这样的:

<ui:CustomControl ClipToBounds="True">
    <Image
        Source="{Binding Path=BackgroundImage}"
        Stretch="None"
        ClipToBounds="False"/>
</ui:CustomControl>
Run Code Online (Sandbox Code Playgroud)

wpf

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