小编Mar*_*rkS的帖子

Visual C++非托管代码:使用/ EHa或/ EHsc进行C++异常?

如果我在非托管C++,Visual Studio 2008或更高版本中创建一个新项目,我想要使用哪种异常处理模型?

我知道/ EHa选项导致代码效率降低,并且还会捕获SEH异常,对吧?

所以我一直在转向那个选项,并且通常使用/ EHsc,因此我只捕获实际抛出的C++异常,而不是捕获访问冲突和其他结构化的execse,在catch(...)处理程序中.如果我的代码中存在访问冲突,我不希望它被catch(...){}掩盖.

我和其他想要捕获(...){}的人一起编写代码,如果存在访问冲突,他们甚至希望它这样做,这对我来说似乎是一个非常糟糕的主意.如果由于编码错误而导致错误,您不想将手指伸入耳中并大声说"La la la la la!" 这样你就不必让程序崩溃了?事实上,如果代码由于编码错误现在处于错误状态,您真的希望代码继续吗?

所以我的一般想法是/ EHa创建更大/更慢的代码并且它允许程序员逃避编写代码,如果存在致命错误,它将继续以未定义状态运行.

顺便说一下,我说的是应用程序和服务代码,这是我们大部分时间写的.不是低级设备驱动程序或类似的东西.

请考虑一下你的想法.

c++ exception seh access-violation visual-studio-2008

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

如何阻止选定的应用程序访问Internet(C++,Win32)

我希望有一个正在运行的应用程序或服务,根据某些计划,可以禁用除特定应用程序之外的所有应用程序的Internet访问.

我正在尝试创建一个可以在程序控制下打开或关闭的过滤器.不仅仅是IP地址和端口,而且我希望能够阻止特定的应用程序,就像Zone Alarm和其他软件防火墙让你阻止一样.

例如,iexplore.exe,skype.exe,firefox.exe,aim.exe.但仍需要允许其他应用程序根据需要进行连接.

它必须适用于Vista和XP,但我希望这些方法在每个平台上都有所不同.

基本上,过滤器必须将网络通信绑定回发出请求的可执行文件,然后允许或拒绝它.

更新:

至少在Vista上,看起来我想在WFPALE层使用过滤器.

XP上,我仍然在寻找最好的方法.我真的需要编写设备驱动程序和处理内核的东西吗?我只是一个卑微的应用程序开发人员.现在杀了我.

更新2:

目前正在寻找用于Vista之前系统的PfCreateInterface和相关的Pf*API.

c++ winapi windows-xp tcp windows-vista

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

为什么MySQL4中的这个查询在MySQL5中不起作用?

最近将数据库从MySQL 4升级到MySQL 5.以下查询现已破坏:

SELECT COUNT(*) FROM Customer, Product INNER JOIN Orders 
ON (Customer.Email = Orders.Email)
WHERE NOT (Product.Flags & 8) AND 
    Customer.CustomerNumber = Product.CustomerNumber AND
    Truncate(Orders.ProductId/10, 0) = Truncate(Product.ProductId/10, 0)
Run Code Online (Sandbox Code Playgroud)

收到以下错误:

#1054 - Unknown column 'Customer.Email' in 'on clause' 
Run Code Online (Sandbox Code Playgroud)

我没有写这个查询,我不是SQL大师,但我猜测可能是ANSI-89/ANSI-92样式连接的混合,并且可能存在某种优先级问题.

你能解释一下这个错误,描述这个查询有什么问题,以及如何正确指定连接?

mysql

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