小编Dar*_*man的帖子

在没有同步的情况下在Perforce文件中查找字符串

不确定这是否可能,但我想我会问是否有人知道.是否可以在Perforce存储库中找到包含字符串的文件?具体来说,是否可以在不将整个存储库首先同步到本地目录的情况下这样做?(它非常大 - 即使我删除了很多东西,我也不认为我有空间 - 这就是存档服务器无论如何.)

有许多工具可以搜索本地目录中的文件(我个人使用Agent Ransack,但它只是其中之一),但这些不会搜索远程Perforce目录,除非有一些(最好是免费的)工具我是不知道有没有这种能力,或者Perforce本身可能有一些隐藏的功能?

perforce

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

无法打开文件'dxguid.lib'

我有恼人的链接器问题 - VS2010声称它找不到这个文件,但它显然存在,并且路径是正确的 - 我在同一个文件夹中使用其他lib,所有工作都没有问题.(d3d9.lib和dinput8.lib)我正在使用2010年2月版的DXSDK(DX9),以防相关.我甚至试过复制/粘贴文件名,所以我知道我没有错误输入它.我的"附加依赖项"行如下所示:

Library.lib;d3d9.lib;dinput8.lib;dxguid.lib;%(AdditionalDependencies)
Run Code Online (Sandbox Code Playgroud)

和附加库目录行(用于Debug构建):

$(DXSDK_DIR)\Lib\;$(SolutionDir)\Debug;%(AdditionalLibraryDirectories)
Run Code Online (Sandbox Code Playgroud)

(Library.lib是我自己的库,存储在$(SolutionDir)\ Debug文件夹中,或Release for Release版本,但这不是问题.)

DXSDK目录包含2个子文件夹,x64和x86,并且两个文件都存在,以及其他两个工作正常的库.(运行Windows 7 64位,所以它应该使用第一个.)任何想法?

c++ directx linker visual-studio

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

内部泛型类型与外部编译器警告相同

所以我有一个树类:

public class Tree<T> : IEnumerable where T : IComparable<T>
{
    private Node<T> root = null;

    ...

    private class Node<T> : IEnumerable<T> where T : IComparable<T>
    {
        private Node<T> left, right;
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我得到编译器警告:Type parameter 'T' has the same name as the type parameter from outer type 'Tree<T>' 嗯,当然它是相同的名称,它们应该是相同的类型.(事实上​​,由于Node该类是私有的,因此永远不能在Tree类之外访问,所以它们保证是相同的类型.这个编译器警告只是BS我可以放心地忽略吗?或者是否有一些很好的理由我应该给内部类一个不同的通用名称(除了让警告消失)?

(我看到了这个问题,这是关于警告本身,但这显然是一个不同的场景.类型保证是相同的,因为Node只有在上下文中创建和访问Tree,所以没有混淆的机会. )

c# generics warnings inner-classes

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

需要双重转换才能将int作为对象转换为float

这是我遇到的奇怪的一个.我有一个返回的函数object.在特定情况下,我确定对象是一个int,但调用此函数的另一个函数需要一个float.我能让这个工作的唯一方法是:

private object parser(string expr) {...}

private float parseFloat(string expr)
{
    ...
    object result = parser(expr);
    if (result is int)
        return (float)(int)result;
    else
        return (float)result;
}
Run Code Online (Sandbox Code Playgroud)

没有那种类型检查,我根本无法让它工作,即使我知道在这种情况下解析器函数的结果是一个int.(你可以在调试器中看到它.)我更喜欢这条线:

private float parseFloat(string expr)
{
    ...
    return (float)parser(expr);
}
Run Code Online (Sandbox Code Playgroud)

(类型检查是事先完成的,parseFloat不应该使用不会计算为float或的表达式调用int.)是否有必要对此变量进行双重转换?我显然不希望在所有情况下双投,因为如果返回的parser 一个float,它会截断它int首先,我们不希望出现这种情况.(是的,我试图取代float,并intSingleInt32等没有任何区别.)

我看到了这个问题,但这取决于提前知道类型,它提供的唯一解决方案是这个双重演绎技巧,在我的情况下会截断floats,除非我先进行类型检查,这还需要一个额外的本地保持结果的变量.有没有办法避免这一额外的步骤?

c# boxing casting object

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

C#非矩形按钮

我试图想出一种在C#中的Windows窗体中制作非矩形按钮的方法.我一直在寻找这个,并且有很多教程(包括微软自己的文档)关于如何使按钮外观非矩形,但是 - 这很关键 - 它们都没有做任何关于制作按钮的活动区域的事情非矩形.例如,如果您创建一个椭圆形按钮,则边界矩形的角仍然是用于拾取鼠标事件(如翻转和点击)的内容.这对我的需求是不可接受的.我需要在彼此相邻的地方放置几个奇形状的按钮,它们的边界可能会重叠,但它们只应对按钮图形可见部分内的点击做出响应.我已经看到了其他几种语言(主要是Objective-C)的几个问题,但C#没有.Winforms甚至可以实现这一点吗?

c# winapi button winforms

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