问题列表 - 第7824页

正确递归

我有几个导航相关的功能,我希望没有深度限制.这些生成CSS菜单,痕迹痕迹等.

我很难过如何使函数遵循每条路径深度或根本没有显式循环.

以下是我想要页面最顶层父项的典型示例.最顶层的parent字段值为零.

这是显式循环版本:

function topPg() {
    $p = $this->retrieve("id = '$this->parent'");
    if ($p->parent != 0) {
        $gp = $this->retrieve("id = '$p->parent'");
        if ($gp->parent != 0) {
            $ggp = $this->retrieve("id = '$gp->parent'");
            if ($ggp->parent != 0) {
                $gggp = $this->retrieve("id = '$ggp->parent'");
                // ad naseum
            } else {
                return $ggp;
            }
        } else {
            return $gp;
        }
    } else {
        return $p;
    }
} // func
Run Code Online (Sandbox Code Playgroud)

任何人都有建议或类似的代码或tute链接帮助指明方向?

php recursion

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

如何在WinDBG中查看托管异常详细信息?

VS2005 C#编译器在我们团队的每晚构建过程中崩溃.我用WinDBG附加它,加载SOS扩展,打印callstack,但看不到异常信息.

我试过了!PrintException,如下:

    0:000> !PrintException
    There is no current managed exception on this thread

这是callstack的顶部:

    0:000> !CLRStack
    OS Thread Id: 0x9fc (0)
    ESP       EIP     
    0012ee08 77e4bef7 [ComPlusMethodFrameGeneric: 0012ee08] Microsoft.Build.Tasks.Hosting.ICscHostObject.Compile()
    0012ee18 6be671ab Microsoft.Build.Tasks.Csc.CallHostObjectToExecute()
    0012ee48 6c0aed17 Microsoft.Build.Utilities.ToolTask.Execute()

c# compiler-construction windbg exception sos

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

将大型MFC应用程序迁移到WPF/.NET有哪些技巧?

我目前正在研究一个非常大的传统MFC MDI应用程序.它有大量的UI元素 - 可停靠的工具栏,自定义树控件,上下文菜单等.它是一个图像处理应用程序,因此主视图使用DirectX和OpenGL自我渲染.该产品大约有10年的历史,其中一个优先事项是更新它的外观和感觉.

知道微软在提供C++/MFC和.NET之间的互操作性方面做得很好,我认为以递增方式迁移代码库是有意义的.我现在正在努力的是从哪里开始.

一种方法是使用WPF删除MFC框架并尽可能多地重用C++代码.这将让我们最大限度地发挥WPF架构的优势,但这将意味着一个漫长的开发周期,直到我们再次完全正常运行.

另一种方法是用它们的WPF对应物一次替换一个MFC控件.这将允许我们以增量方式工作.我对这种方法的关注是,它意味着托管和非托管代码之间会有很多连接点,我不知道从哪里开始替换主菜单和工具栏等内容.

或者我还有其他选择吗?

任何有关此主题的信息的建议或链接将不胜感激.

更新: DavidK提出了一些很好的问题,所以我添加了这背后的动机.

1)产品的未来发展

该产品仍在积极开发中,并定期添加新功能.我认为尝试慢慢迁移到C#/ WPF会很有意义.凭借我在C#/ WPF方面的有限经验,我发现在C++/MFC中工作效率会提高.

我们用WPF获得的另一件大事就是能够利用多头系统.MFC应用程序仅限于单个顶级框架,因此很难利用多个监视器.

2)员工保留和招聘

找到愿意使用MFC的开发人员越来越难了.对于当前开发人员的职业发展而言,接触新技术也很重要.

.net c# c++ wpf mfc

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

21
推荐指数
3
解决办法
7万
查看次数

Forward在c ++中声明一个类的public typedef

我正在尝试通过使用前向声明并将#includes移动到实现文件中来简化一堆头文件"include spaghetti".但是,我继续遇到以下情况:

//Foo.h
#include "Bar.h"

class Foo
{
public:
  void someMethod(Bar::someType_t &val);
};

//Bar.h
.
.
.
class Bar
{
public:
  typedef std::vector<SomeClass> someType_t;
};
Run Code Online (Sandbox Code Playgroud)

我希望在尽可能多的情况下删除#include"Bar.h".我还看到Bar.h中的typedef列在Bar类之外的情况.我假设两种情况都可以用同样的方式解决.

有任何想法吗?

c++ typedef forward-declaration

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

.Net Build Automation

我正在寻找VS2005构建自动化的一些资源(很快就会推出VS2008).我想做一些事情,比如删除我的输出文件夹中的所有文件,将我的所有构建输出移动到一个文件夹等等.我认为这些东西很基本,但我不知道从哪里开始.

谢谢!

build visual-studio

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

REFRESH和MERGE在数据库方面意味着什么?

我很好奇,需要快速找到这个答案.谷歌不会帮助太多.

Java Persistence API具有这些属性,告诉框架在关联实体上级联操作:

CascadeType.PERSIST
CascadeType.DELETE
CascadeType.MERGE
CascadeType.REFRESH
Run Code Online (Sandbox Code Playgroud)

我知道前两个意思是什么:当我持有具有B的对象A时,也坚持B,当我删除A时,也删除B.

但我无法理解其他两个人所取得的成就.救命?

java persistence jpa

86
推荐指数
2
解决办法
6万
查看次数

在Zsh中为Info创建键盘快捷键?

Zsh为Man提供了以下键盘快捷键

Esc+h

我想有一个类似的键盘快捷键,如

Esc+i

如何为Info制作这样的键盘快捷键?

zsh keyboard-shortcuts

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

C#初始化混乱!

int?  test;
try
{
    test = (int?) Int32.Parse ("7");
} catch {}

if (test == null)
     Console.WriteLine("test is null!");
else
     Console.WriteLine("test = {0}", test);
Run Code Online (Sandbox Code Playgroud)

我有一些代码可以做一些与此类似的东西,同样的想法真的...创建变量,尝试初始化它,然后测试初始化​​是否成功.

Visual Studios给我一个错误,说"使用未分配的局部变量'test'",这有点烦人,可以通过将第一行设置为:

int?  test = null;
Run Code Online (Sandbox Code Playgroud)

但我很好奇这两行之间的区别是什么,因为编译器似乎真的很在意.据我所知,这两条线做同样的事情.

c# syntax null

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

[NSNull null]和nil有什么区别?

这是我看到的上下文:

NSMutableArray *controllers = [[NSMutableArray alloc] init];
for (unsigned i = 0; i < kNumberOfPages; i++) {
    [controllers addObject:[NSNull null]];
}
Run Code Online (Sandbox Code Playgroud)

为什么不在那个地方零?

null cocoa cocoa-touch objective-c nsnull

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