小编Hat*_*tch的帖子

为什么在Visual Studio的模块列表中缺少加载的dll?

我目前正在寻找bug并且需要在Visual Studio 2005的发布配置中调试到特定的dll.在某些时候我关闭了解决方案,做了一些其他的东西并重新加载它.从那时起我的断点就不会被击中而且我得到臭名昭着的"没有符号已被加载......"的消息.所以我打开了模块窗口,我要调试的dll不再出现在列表中,因此我无法手动加载符号.应用程序行为正常,所以我绝对确定必须加载dll才能执行某些功能.果然,如果我重命名dll并启动应用程序它不再起作用,所以它也必须是正确的dll.

我尝试将dll项目设置为启动项目,并将命令执行到应用程序的exe并从Visual Studio外部启动应用程序然后附加到该过程,但都无济于事.

问题是,为什么dll不会出现在已加载模块的列表中,尽管它必须已加载?我想不出我做过的任何其他变化,可能导致这种变化,我错过了什么?(也许真的很明显?)

任何帮助赞赏!

visual-studio-2005 visual-studio

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

如何以及在何处确切地在注册表中设置默认电子邮件客户端?

为了找出默认的电子邮件客户端是什么,我一遍又一遍地找到相同的信息:查看默认的字符串HKLM\Software\Clients\Mail.(参见例如此相关问题)

但是,对于所有操作系统和/或情况似乎都不是这样:我有两台运行Win7 64bit的计算机,我们称之为A和B.A安装了Outlook 2010 64位和Thunderbird 3 32位.B安装了Outlook 2007 32位和Thunderbird 3 32位.A和B都将Thunderbird设置为其默认邮件客户端.

但是,注册表的状态并不像我预期的那样:

在机器A,两者HKLM\Software\Clients\MailHKLM\Software\Wow6432Node\Clients\Mail有一个空的字符串作为默认字符串值.在B上,这两个键都包含Microsoft Outlook默认字符串值,这显然是错误的.进一步的调查显示,正确的值似乎写HKCU\Software\Clients\Mail在两台机器上.

我希望我的应用程序能够正确处理所有情况.有点道理,Win7现在似乎为每个用户拥有一个单独的默认邮件客户端,但它看起来相当不一致.在查看指向过多的信息时,HKLM\Software\Clients\Mail很明显以前版本的Windows处理的方式不同,并且始终写入该位置.那么什么时候改变了?机器B上有错误的值是什么意思?如果没有,为什么它首先写在那里?同一台计算机上64位和32位电子邮件客户端的混合是否会发生变化?

如果有人愿意分享解释这个主题的可靠信息或文档,我将不胜感激!也许有一个Win32 API函数返回正确的值?

windows email registry

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

更改输出文件设置时警告MSB8012

我在Visual Studio 2010下启动了一个新的C++项目,在更改了Project Properties-> Configuration Properties-> Linker-> General下的Output File设置后,我遇到警告MSB8012.默认情况下是 $(OutDir)$(TargetName)$(TargetExt)),但我需要将其更改为$(OutDir)Bin\$(ConfigurationName)\$(TargetName)$(TargetExt).

如果我这样做,我会遇到警告.我在Visual Studio 2005和2008下从未遇到过这个问题.

错误消息告诉我,我的TargetPath与Linker的OutputFile属性值不匹配.已解析的命令行看起来与我想要的完全相同,但TargetPath值缺少该Bin\$(ConfigurationName)部分.TargetPath属性值到底在哪里设置/组装?

消息包含To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).这是否意味着,OutputFile属性只能具有其默认值?

如何在不重置输出文件属性或使用某些愚蠢的解决方法的情况下解决此警告?

warnings visual-studio-2010 project-settings

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

优雅地组合两个列表的元素,使它们在某个属性值中是唯一的?

假设我有这个Java 8代码:

public class Foo {
    private long id;
    public getId() {
        return id;
    }

    //--snip--
}


//Somewhere else...

List<Foo> listA = getListA();
List<Foo> listB = getListB();

List<Foo> uniqueFoos = ???;
Run Code Online (Sandbox Code Playgroud)

List<Foo> uniqueFoos我要添加的所有元素listA,并listB因此所有FooS ^具有唯一的ID.也就是说,如果已经有一个FoouniqueFoos具有特定ID不添加其他Foo具有相同ID但跳过它来代替.

当然有简单的旧迭代,但我认为应该有更优雅的东西(可能涉及流,但不是强制性的),但我无法弄清楚...

我可以想到一个好的解决方案,涉及equals()基本上覆盖方法return id == other.id;并使用Setdistinct().不幸的是我无法覆盖,equals()因为对象相等不能改变.

实现这一目标的清晰有效方法是什么?

java java-8

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

如何通过编程方式通过代理连接到TFS?

在我的公司,我们最近成立了一个TeamFoundation代理我们的TeamFoundationServer.我编写了一个C#应用程序,它连接到TFS以查询各种内容.现在,我希望该应用程序也支持通过TFS代理连接.由于我对TFS并不熟悉,我遇到了一些困难.理想情况下,我希望应用程序只是"知道" TFS代理,并把它行为就像正常的TFS.这甚至可能吗?

我在做什么是这样的:

TfsTeamProjectCollection projects = 
    new TfsTeamProjectCollection(new Uri(serverUriString, 
                                 new NetworkCredential(username, password, domain));
Run Code Online (Sandbox Code Playgroud)

如果serverUriString是TFS(例如" http:// MyTfs:8080 "),这可以正常工作.当我用TFS代理替换它(例如" http:// MyTfsProxy:8081 ")时,我得到一些非特定的TeamFoundationServiceUnavailableException,最后它表明发生了一个http 404错误.404对我来说没有多大意义,我能够ping服务器,我可以从浏览器连接到它,Visual Studio也可以加入它.我是否需要设置与TFS和代理的连接?如果是的话,我该怎么做?

c# tfs

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