问题列表 - 第3860页

在WPF中呈现日志视图的快速方法是什么?

我正在编写一个需要类似日志视图的应用程序(类似于IM客户端在对话中显示消息的方式),每秒可能有很多更新.速度是一个问题; 由于大量传入事件导致应用程序锁定是一个可能的问题.我需要选择和基本的文本格式,所以手动渲染可能会变得非常复杂,我想尽可能避免它.我还想底部锚定滚动条,也就是说,如果它在底部,则在添加新项目时保持在底部.实现这个的好方法是什么?

c# wpf

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

获取Firefox URL?

如何使用.NET 2.0 Windows/console应用程序从正在运行的firefox实例获取URL?C#或VB代码都可以.

谢谢!

.net c# firefox

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

在ASP.NET中创建CAPTCHA代码的代码?

我想创建一个类似于http://www.gigbooks.com/getcaptcha.php的CAPTCHA .但是在PHP中,有人为我提供了在ASP.NET中创建相同的代码吗?

我使用的是ASP.NET 2.0(C#)

谢谢,

.net c# asp.net-2.0

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

MFC与CLR?

在Visual Studio C++项目中,MFC会比使用CLR更快吗?我特意使用2008.

哦,我问的原因是因为我有使用.NET的经验但不是MFC的经验.我明白MFC是什么,但从来没有真正使用它.

.net c++ clr mfc visual-studio

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

无法按值复制的指针容器类

我需要一个智能指针用于我的项目,可以作为参数发送到几个方法.我从boost 检查了auto_ptrshared_ptr.但IMO,这不符合我的要求.以下是我的发现

auto_ptr:当传递给另一个方法时,将转移所有权,并在该方法的范围结束时删除基础指针.我们可以通过引用传递auto_ptr来解决这个问题,但是没有编译时机制来确保它总是通过引用传递.如果错误地,用户忘记传递引用,则会产生问题.

boost :: shared_ptr:这看起来很有前途,可以满足我的需要.但我觉得这对我的项目来说太过分了,因为它很小.

所以我决定编写一个简单的模板化指针容器类,它不能被值复制并注意删除底层指针.这里是

template <typename T>
class simple_ptr{
public:
    simple_ptr(T* t){
       pointer = t;
    }
    ~simple_ptr(){
       delete pointer;
    }
    T* operator->(){
       return pointer;
    }
private: 
    T* pointer;
    simple_ptr(const simple_ptr<T>& t);
};
Run Code Online (Sandbox Code Playgroud)

这个实现是否正确?我已经将复制构造函数设置为私有,因此编译器会在有人尝试按值传递时发出警报.

如果指针被删除,则对析构函数的删除操作将抛出断言错误.我该如何解决这个问题?

我对C++很陌生,你的建议非常感谢.

谢谢

c++ templates

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

为什么pcap_next_ex的第三个参数是不兼容的指针类型?

免责声明:这是一个家庭作业,但问题不在于作业,只是一般语法怪异.

我试图在一个更大的程序的上下文中使用libpcap,但是当我尝试获取每个数据包的数据包头和数据时,gcc抱怨pcap_next_ex的第三个参数是一个不兼容的指针类型.这是一些示例代码,看看我在说什么:

#include <stdio.h>
#include <stdlib.h>
#include <pcap.h>

int main()
{
    pcap_t *pcap;
    char pcapErr[PCAP_ERRBUF_SIZE];
    struct pcap_pkthdr *pktHeader;
    u_char *pktData;

    pcap = pcap_open_offline("somefile.pcap", pcapErr);
    if (pcap == NULL)
    {
        fprintf(stderr, "pcap_open_offline failed: %s\n", pcapErr);
        exit(EXIT_FAILURE);
    }

    while (pcap_next_ex(pcap, &pktHeader, &pktData) == 1)
    {
        // do things here
    }

    pcap_close(pcap);

    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

手册页指出pcap_next_ex()的原型是:

int pcap_next_ex(pcap_t *p, struct pcap_pkthdr **pkt_header, const u_char **pkt_data)
Run Code Online (Sandbox Code Playgroud)

我传递的是一种不兼容的指针类型到底是怎么回事?谢谢.

c pointers pcap

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

教盲人的最佳语言编程基础知识?

我有一个失明的朋友,想学习如何编程.我也是盲人但是我自学了如何在一台旧计算机上编程,该计算机上有一个gwbasic版本和1980年写的一本不再可用的有声读物,所以我学到的方法不是一个选择.我看过类似的问题,但我有一些独特的要求:

  1. 由于使用了缩进,我已经将python作为强制选择进行了至少最初的判断.
  2. 语言中的程序应该作为控制台应用程序轻松运行,guis不适合初学盲人程序员.
  3. 该语言应该可以在任何文本编辑器和命令行中使用,IDE通常最初难以与屏幕阅读器一起使用它们具有的选项.
  4. 语言需要有良好的电子教程; 我无法花时间教这个人他们最初需要知道的一切,尽管如果他们遇到问题我可以提供帮助.

blind

32
推荐指数
3
解决办法
2831
查看次数

为什么User(在User.Identity.Name中)在我的抽象基本控制器中为null?

我问了一个相关的问题但是搞砸了标题,没有人会理解它.由于我现在能够更准确地提出这个问题,我决定在一个新问题中重新制定它并关闭旧问题.对不起.

所以我想要做的是将数据(我的自定义用户的昵称存储在数据库中)传递给LoginUserControl.此登录通过Html.RenderPartial()从主页面呈现,因此我真正需要做的是确保每次调用时都出现ViewData ["UserNickname"].但我不想在每个控制器的每个动作中填充ViewData ["UserNickname"],所以我决定使用这种方法并创建一个抽象的基本控制器,它将为我完成工作,如下所示:

public abstract class ApplicationController : Controller
    {
        private IUserRepository _repUser;

        public ApplicationController()
        {
            _repUser = RepositoryFactory.getUserRepository();
            var loggedInUser = _repUser.FindById(User.Identity.Name); //Problem!
            ViewData["LoggedInUser"] = loggedInUser;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这样,无论我的推导控制器做什么,用户信息都已经存在.

到现在为止还挺好.现在出现问题:

我无法调用User.Identity.Name,因为User它已经为空.在我的所有派生控制器中都不是这种情况,因此这是抽象基本控制器特有的.

我在代码中的另一个地方通过FormsAuthentication设置User.Identity.Name,但我认为这不是问题 - afaik User.Identity.Name可以为null,但不是User本身.

在我看来HttpContext不可用(因为也是null ;-)而且我在这里错过了一个简单而重要的观点.任何人都可以给我一些提示吗?我真的很感激.

c# asp.net-mvc user-controls controller httpcontext

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

如何从PDF文件中提取图像?

我需要从服务器上的PDF文件中提取所有图像.我不想要PDF页面,只需要原始大小和分辨率的图像.

我怎么能用Perl,PHP或任何其他基于UNIX的应用程序(我会用PHP的exec函数调用)来做到这一点?

php pdf perl

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

如何在控制台应用程序(Linux)中擦除打印的字符?

我正在创建一个需要进度条的小型控制台应用程序.就像是...

Conversion: 175/348 Seconds   |==========          |  50%
Run Code Online (Sandbox Code Playgroud)

我的问题是,你如何擦除已经打印到控制台的字符?当我达到第51个百分比时,我必须从控制台擦除这一行并插入一个新行.在我目前的解决方案中,这就是发生的事情......

Conversion: 175/348 Seconds   |==========          |  50%
Conversion: 179/348 Seconds   |==========          |  52%
Conversion: 183/348 Seconds   |==========          |  54%
Conversion: 187/348 Seconds   |===========         |  56%
Run Code Online (Sandbox Code Playgroud)

我使用的代码是......

print "Conversion: $converted_seconds/$total_time Seconds   $progress_bar  $converted_percentage%\n";
Run Code Online (Sandbox Code Playgroud)

我在使用PHP的Linux中这样做(只有我会使用该应用程序 - 所以请原谅语言选择).因此,该解决方案应该适用于Linux平台 - 但如果您有一个跨平台的解决方案,那将更为可取.

linux console character erase

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