我正在编写一个需要类似日志视图的应用程序(类似于IM客户端在对话中显示消息的方式),每秒可能有很多更新.速度是一个问题; 由于大量传入事件导致应用程序锁定是一个可能的问题.我需要选择和基本的文本格式,所以手动渲染可能会变得非常复杂,我想尽可能避免它.我还想底部锚定滚动条,也就是说,如果它在底部,则在添加新项目时保持在底部.实现这个的好方法是什么?
如何使用.NET 2.0 Windows/console应用程序从正在运行的firefox实例获取URL?C#或VB代码都可以.
谢谢!
我想创建一个类似于http://www.gigbooks.com/getcaptcha.php的CAPTCHA .但是在PHP中,有人为我提供了在ASP.NET中创建相同的代码吗?
我使用的是ASP.NET 2.0(C#)
谢谢,
在Visual Studio C++项目中,MFC会比使用CLR更快吗?我特意使用2008.
哦,我问的原因是因为我有使用.NET的经验但不是MFC的经验.我明白MFC是什么,但从来没有真正使用它.
我需要一个智能指针用于我的项目,可以作为参数发送到几个方法.我从boost 检查了auto_ptr和shared_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++很陌生,你的建议非常感谢.
谢谢
免责声明:这是一个家庭作业,但问题不在于作业,只是一般语法怪异.
我试图在一个更大的程序的上下文中使用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)
我传递的是一种不兼容的指针类型到底是怎么回事?谢谢.
我有一个失明的朋友,想学习如何编程.我也是盲人但是我自学了如何在一台旧计算机上编程,该计算机上有一个gwbasic版本和1980年写的一本不再可用的有声读物,所以我学到的方法不是一个选择.我看过类似的问题,但我有一些独特的要求:
我问了一个相关的问题但是搞砸了标题,没有人会理解它.由于我现在能够更准确地提出这个问题,我决定在一个新问题中重新制定它并关闭旧问题.对不起.
所以我想要做的是将数据(我的自定义用户的昵称存储在数据库中)传递给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 ;-)而且我在这里错过了一个简单而重要的观点.任何人都可以给我一些提示吗?我真的很感激.
我需要从服务器上的PDF文件中提取所有图像.我不想要PDF页面,只需要原始大小和分辨率的图像.
我怎么能用Perl,PHP或任何其他基于UNIX的应用程序(我会用PHP的exec函数调用)来做到这一点?
我正在创建一个需要进度条的小型控制台应用程序.就像是...
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平台 - 但如果您有一个跨平台的解决方案,那将更为可取.