嗨,我正在尝试将SharpPcap新版本SharpPcap-2.2.0rc1.src中的示例3中的数据包捕获从控制台应用程序转换为Windows窗体应用程序.
我遇到一个问题,当我尝试添加数据包已被捕获到ListView控件我将得到一个错误,这是:
(跨线程操作无效:控制'listViewPackets'从其创建的线程以外的线程访问.)
在这一行:
listViewPackets.Items.Add(e.Packet.ToString());
任何解决这个问题的建议???
这是我的代码:
using SharpPcap;
namespace Packets
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Retrieve the device list
private void btnLiDevicest_Click(object sender, EventArgs e)
{
var devices = LivePcapDeviceList.Instance;
// If no devices were found print an error
if (devices.Count < 1)
{
MessageBox.Show("No devices were found on this machine");
return;
}
int i = 0;
// Print out the devices
foreach (LivePcapDevice dev in devices)
{
///* Description …Run Code Online (Sandbox Code Playgroud) 我的数据库中的表是使用正确的UTF-8字符集创建的,如下所示:
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
...
...
...
...
...
PRIMARY KEY (id)
) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_slovak_ci;
Run Code Online (Sandbox Code Playgroud)
但是,当我使用Zend_Db_Table使用此方法从表中获取数据时:
public function getSingle($id)
{
$select = $this->select();
$where = $this->getAdapter()->quoteInto('id = ?', $id, 'INTEGER');
$select->where($where);
return $this->fetchRow($select);
}
Run Code Online (Sandbox Code Playgroud)
它返回一个带有乱糟糟的UTF-8字符的对象(我猜是转换为iso-8859-1).
当我通过phpmyadmin查看数据库时,它会正确显示所有字符,并且还显示正确的编码(UTF-8),因此我不知道问题出在哪里.
我怎么解决这个问题?
更新:
所以我做了这个,它的工作原理:
protected function _initDb()
{
$this->configuration = new Zend_Config_Ini(APPLICATION_PATH
. '/configs/application.ini',
APPLICATION_ENVIRONMENT);
$this->dbAdapter = Zend_Db::factory($this->configuration->database);
Zend_Db_Table_Abstract::setDefaultAdapter($this->dbAdapter);
$stmt = new Zend_Db_Statement_Pdo($this->dbAdapter,
"SET NAMES 'utf8'");
$stmt->execute();
}
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?
UPDATE2:
我试过这个:
protected function …Run Code Online (Sandbox Code Playgroud) 我最近读了很多关于IEEE 754和x87架构的内容.我正在考虑在我正在研究的一些数值计算代码中使用NaN作为"缺失值",我希望使用信令 NaN将允许我在我不想要的情况下捕获浮点异常继续"缺失值".相反,我会使用安静的 NaN来允许"缺失值"通过计算传播.但是,信号NaN不起作用,因为我认为它们将基于它们上存在的(非常有限的)文档.
以下是我所知道的摘要(所有这些都使用x87和VC++):
标准库提供了一种访问NaN值的方法:
std::numeric_limits<double>::signaling_NaN();
Run Code Online (Sandbox Code Playgroud)
和
std::numeric_limits<double>::quiet_NaN();
Run Code Online (Sandbox Code Playgroud)
问题是我认为信号NaN没有任何用处.如果屏蔽了_EM_INVALID,则其行为与安静NaN完全相同.由于没有NaN与任何其他NaN相当,因此没有逻辑差异.
如果未屏蔽_EM_INVALID (启用异常),则甚至无法使用信号NaN初始化变量:
double dVal = std::numeric_limits<double>::signaling_NaN();因为这会引发异常(信号NaN值被加载到x87寄存器以将其存储到存储器地址).
您可以像我一样思考以下内容:
但是,步骤2会导致信令NaN转换为安静的NaN,因此后续使用它不会导致异常被抛出!那么WTF?!
信号NaN是否有任何实用性或目的?我理解其中一个原始意图是使用它初始化内存,以便可以捕获使用单位化浮点值.
有人能告诉我,如果我在这里遗失了什么吗?
编辑:
为了进一步说明我希望做的事情,这里有一个例子:
考虑对数据向量(双精度)执行数学运算.对于某些操作,我想允许向量包含"缺失值"(假设这对应于电子表格列,例如,其中一些单元格没有值,但它们的存在很重要).对于某些操作,我不希望允许向量包含"缺失值".如果集合中存在"缺失值",也许我想采取不同的行动 - 可能执行不同的操作(因此这不是无效的状态).
这个原始代码看起来像这样:
const double MISSING_VALUE = 1.3579246e123;
using std::vector;
vector<double> missingAllowed(1000000, MISSING_VALUE);
vector<double> missingNotAllowed(1000000, MISSING_VALUE);
// ... populate missingAllowed and missingNotAllowed with (user) data...
for (vector<double>::iterator it = missingAllowed.begin(); it != missingAllowed.end(); ++it) …Run Code Online (Sandbox Code Playgroud) 我有一种心理tic,这让我不愿意在C和C++等低级语言中使用大型库(如GLib或Boost).在我看来,我认为:
嗯,这个图书馆有数千个小时的时间,而且它是由那些比我更了解语言的人创造的.他们的作者和粉丝说这些库是快速可靠的,而且功能看起来非常有用,它肯定会阻止我(严重地)重新发明轮子.
该死的,我永远不会使用该库中的所有功能.它太大了,多年来可能会变得臃肿; 这是我的程序需要拖延的另一个球和链.
该托沃兹咆哮(争议虽然它是)不完全把我的心脏放心无论是.
我的想法有什么依据,还是我只是不合理和/或无知?即使我只使用大型库的一个或两个功能,通过链接到该库我会产生运行时性能开销吗?
我确信它还取决于具体的库是什么,但我通常很想知道大型库是否会在技术层面上固有地引入低效率.
当我没有技术知识知道我是否正确的时候,我已经厌倦了对此的痴迷,嘀咕和担心.
请把我从痛苦中解救出来!
假设我有两个不同的存储库,如下所示:
Project 1:
Init---A---B---C---HEAD1
Project 2:
Init---D---E---F---G---HEAD2
Run Code Online (Sandbox Code Playgroud)
有没有办法将Project 1(Init to HEAD)重新绑定到Project 2的Init提交,所以它看起来像这样:
Project 1 & 2:
A---B---C---HEAD1
/
Init---D---E---F---G---HEAD2
Run Code Online (Sandbox Code Playgroud)
项目1和项目2的内容类似.主要区别在于它们的文件结构略有不同,如下所示:
Project1:
MyProject/
File1
File2
File3
Project2:
MyParentProject/
MyProject/
File1
File2
File3
SomeFolder/
SomeOtherFolder/
...etc/
Run Code Online (Sandbox Code Playgroud)
仅供参考:MyProject不是MyParentProject的子模块.MyProject和MyParentProject存在于两个独立的位置,作为两个单独的git存储库.
我们在 ASP.Net 应用程序中遇到了一个问题,即在为用户生成报告后,Crystal Reports 引擎在服务器的 Temp 文件夹中留下垃圾 .tmp 文件。
所以我们试图弄清楚如何在 Report 对象上运行 .Close() 和 .Dispose() 方法,但我们发现在导出发生后代码永远不会运行。
MyReport.Report.ExportToHttpResponse(ExportFormatType.PortableDocFormat,
this.Response, true, "My_Report");
MyReport.Report.Close();
MyReport.Report.Dispose();
Run Code Online (Sandbox Code Playgroud)
设置在最后两行的断点永远不会被命中,我们还尝试将其他代码放在那里来测试处理。没有一个运行。(我也在其他具有类似代码的网站上看到过这个问题,但没有答案)
我假设此时 ExportToHttpResponse 方法正在向用户返回文件流 (PDF),结束处理,因此其余代码不会运行。如果是这种情况,我们如何让 CR 对临时文件执行清理,而 Close() 和 Dispose() 方法应该这样做?我们是否必须实施手动事后清理?
所以现在我这样做:
$(".radio_visible").hide().removeClass("radio_visible");
Run Code Online (Sandbox Code Playgroud)
但我希望能够做的是删除所有radio_visible类,如果它在特定的ID内.有点像:
$(".radio_visible").hide().removeClass("#payment_fields .radio_visible");
Run Code Online (Sandbox Code Playgroud)
那么还有另一个jQuery函数我应该考虑将其拉下来吗?
我的项目是用c#编写的.我有一个我设计的用户控件.在那个用户控件中,我希望能够通过使用反射来查看控件所在的表单,以查看表单上的所有其他控件.
我该怎么做呢?我用反射来通过dll,但不是用于这样的事情.
总结:我的usercontrol放在一个表单上,我希望我的usercontrol到onLoad查看表单上的所有其他控件(有时我想将它限制在同一个容器而不是整个表单,但我可以稍后解决).
如果有人有任何想法,我也会接受不使用反思的想法.
谢谢!
编辑:
所以我试着简单地浏览一下父控件,这对于我试图做的事情没有用,这是我在上面严重解释它的错.
让我提供一些细节.
我知道在主窗体上会有一个ContainerListView控件,现在当你向containerlistview添加列时,会创建ContainerListviewColumnHeaders.它们的声明出现在表单的initalizeComponent()中.我想要做的是在我的usercontrol中我想查看表单并找到所有的ContainerListViewColumnHeader,但是因为它们不是'Control'类型(它们是'Component'),所以它们不会出现在前面的方法中.询问Containerlistview不是一种选择.
我在用:-
我一直在为这个对象定义'No parameterless constructor'.为我的AccountController.AccountController注入了Services.这些服务的绑定在ServiceModule中定义.
在Global.asax.cs中找到我的MvcApplication的代码.
public class MvcApplication : NinjectHttpApplication // System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Account", action = "Login", id = "" } // Parameter defaults
);
}
protected override void OnApplicationStarted()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
RegisterAllControllersIn(Assembly.GetExecutingAssembly());
}
protected override IKernel CreateKernel()
{
return new StandardKernel(new INinjectModule[] {
new ServiceModule(),
});
}
}
Run Code Online (Sandbox Code Playgroud) 因此,我想将两个表连接在一起,但是对于第一个表中的每一行,我只想将其连接到另一个表中前8个匹配的行,并按该表中的列之一排序。我可以使用任何巧妙的语法,还是需要弄乱子查询?
c# ×2
c++ ×2
asp.net ×1
asp.net-mvc ×1
boost ×1
c ×1
git ×1
glib ×1
ieee-754 ×1
join ×1
jquery ×1
limit ×1
merge ×1
mysql ×1
ninject ×1
performance ×1
reflection ×1
repository ×1
sharppcap ×1
visual-c++ ×1
x87 ×1
zend-db ×1