小编vrr*_*hod的帖子

如何使用LINQ在字符串[]中找到最长的字符串

我有一个可变长度的字符串数组.目前我有一个循环遍历数组以找到数组中最长的字符串.有没有什么方法可以使用LINQ以更高效和/或更清晰的方式编写它?

c# linq-to-objects

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

log4Net困境

我有一个包含多个C#项目的C#解决方案.我打算在其中添加日志记录.此日志记录应该在所有项目中都可用,并且最好使用带有滚动文件日志的log4Net.

有了上述前提,我可以想到两种方法.

  1. 在解决方案的入口点(程序类)中初始化记录器并获取记录器实例并将其用作需要记录的每个类的成员变量.

  2. 添加另一个项目,Utilities并使用静态日志记录方法定义Logging类.该类应该在解决方案的入口点(程序类)中初始化.

什么是最好的解决方案?

c# logging log4net

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

使用Visual Studio 2008预备

有没有办法在Visual Studio 2008 Professional中添加Prefast

我正在尝试编译本机c ++代码.

我试过以下事情,

  1. 下载的Windows SDK
  2. 将编译器的Bin/Include/Lib路径设置为SDK.
  3. 添加了c/c ++编译的附加选项(/ Analyze:WX-)

我相信这些步骤应该设置适当的编译器来使用prefast进行静态分析.此设置实际上适用于Visual Studio 2005.但它不适用于Visual Studio 2008.

它总是给出两个问题

  1. 链接:警告LNK4044:无法识别的选项'/ MANIFESTUAC:level ='asInvoker'uiAccess ='false''; 忽视
  2. 致命错误LNK1103:调试信息损坏; 重新编译模块

原因1,我相信,Windows SDK无法识别/ MANIFESTUAC选项.这已经在Visual Studio 2008中引入.原因为2,不知道:).

任何想法/建议/指针都是最受欢迎的.

visual-studio-2008 visual-c++ prefast

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

OutputDebugString()在Windows 7x64上不起作用

我的程序适用于windows xp.我试图添加一些更多的功能,并OutputDebugString()用于显示一些调试信息.在XP上完美运行.现在我想在Windows 7x64上使用相同的程序.我没有看到任何输出DebugView.

F1! F1! F1!

outputdebugstring windows-7-x64

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

fopen()在win32上的表现

我正在尝试编写一些适用于Linux和Win32的代码.我发现它们之间最显着的区别(在我的代码中)是性能fopen().
以下代码在我的Ubuntu上需要5秒,而相同的代码在Windows XP上需要超过100秒.我想在这里做一个说明,ubuntu是VM,而XP是在真机上.

    time_t start = time(NULL);
    for(int i=0; i < 100000; ++i){
        FILE *fp = fopen("a.txt", "a");
        if (fp != NULL)
        {
            fprintf(fp, "Hello World");
            fclose(fp);
        }
    }
    time_t end = time(NULL);

    printf("\n It took %d seconds \n", end-start);
Run Code Online (Sandbox Code Playgroud)

显然fopen()是造成这种差异的原因.我想知道为什么会有这么大的差异?

c linux winapi

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

Windows 7徽标测试

我们使用msxml4作为我们的安装程序的合并模块.我们成功地将它与Windows XP和Vista一起使用.但是,它会在Windows 7徽标测试中生成警告.测试用例3,成功发出警告"文件C:\ WINDOWS\SYSWOW64\MSXML4.DLL被写入错误的位置".

任何建议/想法,以避免这种警告?

logo-testing windows-7

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

如何读取系统输出('ls')?

我正在用c代码做一些文件IO.我的文件中有一个特定的模式.我可以通过shell命令验证这一点cat abc.txt | grep abc | wc -l.当我使用相同的命令执行时System(),它会给出正确的输出,但我不知道如何将其输出变为变量并将其与我的c代码本身进行比较.

我试着查看建议使用的手册页WEXITSTATUS().这实际上返回执行状态而不是输出.

F1 !!

c linux

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

Marshal.FreeHGlobal() 如何工作?

我有一个基于 C# 的 UI,它使用基于 C++ 的 DLL。我的要求是将一大块内存从 C# 传递到 DLL。DLL 将写入此内存缓冲区并将其传回 C#。我使用 IntPtr 和全局内存函数来执行此操作。一切正常。

问题是,如何验证 Marshal.FreeHGlobal() 是否已清理内存?我正在使用大块内存,通常以 MB 为单位。所以我想确保内存立即被清理。

.net c# c++ dll memory-management

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

如果我的数据绑定验证失败,我怎样才能获得原始值

我有一个使用DataGrid的工作WPF对话框.DataGrid设置为ItemsSource={Binding SomeCollection, Mode=TwoWay}.此设置工作正常,我可以读取值并从UI更新它们.

后来我添加了转换器来验证值.验证失败时显示空白.现在我有兴趣恢复原始值,以防验证失败.

我有什么选择?

data-binding wpf datagrid

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

如何使用c ++配置Windows组策略?

我正在使用IE BHO工具栏.当我为IE 8安装它时,它工作正常.在IE 9的情况下,它会弹出一个信息栏,询问是否启用它.我知道要在组策略中手动更改哪些设置.我只是不知道如何在编程中做到这一点.

要进行的更改在组策略中:
位置:用户配置>管理模板> Windows组件> IE>安全功能>加载项管理
修改:

  • 将加载项列表设置为启用
  • 在附加组件列表中添加条目

有没有直接的API来完成这项工作?

我主要是在寻找C++ API,但我对基于C#/ WMI的方法也很好.

c# c++ wmi

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