比方说,如果我在C#代码上有以下块:
public class SynchedClass
{
public void addData(object v)
{
lock(lockObject)
{
//Shall I worry about catching an exception here?
//Do the work
//arr.Add(v);
}
}
private List<object> arr = new List<object>();
private object lockObject = new object();
}
Run Code Online (Sandbox Code Playgroud)
我应该尝试捕获lock块内的异常吗?(我主要担心的是锁内部可能会引发异常,这会阻止锁被"解锁".)
首先,让我问一个修辞问题 - 微软,为什么\\?\要让我们在前面添加路径以允许它们长达32,767个字符?为什么不直接使用它们并扩展API上内部缓冲区的大小?对不起,我只是在发泄我的沮丧......
好的,现在我的实际问题,如果我有一条路径,如何将其转换为接受32,767个字符长度的格式?请注意,我对该路径一无所知 - 它可以是相对路径,绝对本地路径,网络共享等.换句话说,它可以是Microsoft发明的众多路径格式中的任何一种.
起初,它似乎是一个直接的命题,\\?\在开头添加,对吧?那么,如果该路径已经转换为扩展格式怎么办?我尝试阅读这个,从该页面的大小和底部的评论数量,你可以看到事情并不像看起来那么简单.
我一直在寻找从我的程序中调整Windows平台上的屏幕.我知道有一个允许这样的SetMonitorBrightness API,但对我来说问题是能够在Windows XP上调暗屏幕(该API不支持)以及桌面计算机上的调暗屏幕也会很好.
所以我做了一些研究,发现这个实用程序似乎在没有问题的情况下使我的屏幕在Windows XP桌面上变暗.我试图联系作者,了解他们如何实现调光器,但我没有收到他们的回复.
所以我很想知道这个网站上的开发人员,当你不支持SetMonitorBrightness API时,你认为他们如何设法调暗屏幕?
PS.我是一名新手开发者,我自己也在尝试为我们的小企业编写节能计划.它是一个非营利组织,我们没有资金聘请Windows开发人员为我们这样做.我们的大多数计算机都是Windows XP桌面,因此您可以看到我无法使用SetMonitorBrightness API,因为它在Web上被广泛记录.
提前致谢.
我使用以下代码生成用于加密目的的伪随机数序列,但后来我在某处读到它可能不是很安全.有人可以给我一个更好的生成器的C实现 - 主要目标是这个方法快速.例如,我做了一些研究并遇到了Blum Blum Shub方法,它会通过执行pow(N)计算完全扼杀性能.
PS.请不要引用没有C/C++代码的维基百科文章.我正在寻找我在下面展示的C或C++代码示例.
#define ROL(v, shift) ((((v) >> ((sizeof(v) * 8) - (shift))) | ((v) << (shift))))
ULONGLONG uiPSN = doSeed(); //64-bit unsigned integer
for(int i = 0; i < sizeOfArray; i++)
{
uiPSN = uiPSN * 214013L + 2531011L;
uiPSN = ROL(uiPSN, 16);
//Apply 'uiPSN'
}
Run Code Online (Sandbox Code Playgroud) 在我的MSI安装程序自定义操作处理程序(使用C++完成)中,我无法获得SE_DEBUG_NAME权限以便能够打开和终止进程,因此我不得不求助于使用该taskkill实用程序:
taskkill /f /pid 1230
Run Code Online (Sandbox Code Playgroud)
我需要知道的是taskkill能够看到过程是否终止的返回码以及它可能没有的原因.
我能够在Windows 8机器上通过实验获得以下内容:
0 = success
1 = access denied
128 = no such process
Run Code Online (Sandbox Code Playgroud)
这些是官方文件吗?
我有一个在VS 2008中开发的原生C++/MFC应用程序,没有.NET的东西,我使用Project Centennial转换器转换为UWP应用程序.所以现在我有一个.appx包在Windows 10 v 1607中作为UWP应用程序运行.
我的下一个目标是在提交到Windows应用商店之前添加应用内购买支持.
问题是如何从本机C或C++代码从纯Win32应用程序访问Windows.Services.Store命名空间?
我正在尝试理解x64编译器完成的程序集优化.
我在Windows 8.1上Release使用Visual Studio 2008 SP1IDE 编译了一个小型C++项目.
其中一行包含以下汇编代码:
B8 31 00 00 00 mov eax,31h
0F 1F 44 00 00 nop dword ptr [rax+rax]
Run Code Online (Sandbox Code Playgroud)
这是一个截图:
据我所知nop本身是do nothing,但我从来没有用那种操作见过它.
有人可以解释它是做什么的吗?
我无法弄清楚这是否是可接受的操作.我需要从SQL Server 2008数据库中选择记录然后删除它们,所有这些都是ASP.NET代码中的单个事务.请注意,.NET代码必须能够检索首先选择的数据.
这样的东西:
SELECT * FROM [tbl] WHERE [id] > 6;
DELETE FROM [tbl] WHERE [id] > 6
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用SQL Fiddle,但如果我这样做:
SELECT * FROM [tbl]
Run Code Online (Sandbox Code Playgroud)
我得到了完整的表格,好像没有删除任何内容.
编辑按照下面的要求,这里是检索记录的完整.NET代码:
string strSQLStatement = "SELECT * FROM [tbl] WHERE [id] > 6;" +
"DELETE FROM [tbl] WHERE [id] > 6";
using (SqlCommand cmd = new SqlCommand(strSQLStatement, connectionString))
{
using (SqlDataReader rdr = cmd.ExecuteReader())
{
while(rdr.Read())
{
//Read values
val0 = rdr.GetInt32(0);
val3 = rdr.GetInt32(3);
//etc.
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法将文件夹(包含子文件夹)放入具有以下条件的回收站:
它必须以静默方式完成 - 没有任何 Windows UI.
永远不能永久删除该文件夹.如果无法将其放入回收站,我希望API失败.
像CopyFileEx那样获取进程的回调例程.
到目前为止,我能够想出这个:
SHFILEOPSTRUCT sfo = {0};
sfo.wFunc = FO_DELETE;
sfo.pFrom = L"K:\\test del from USB\0"; //Folder on a USB stick
sfo.fFlags = FOF_ALLOWUNDO |
FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR |
FOF_WANTNUKEWARNING;
int res = SHFileOperation(&sfo);
BOOL bFullSuccess = res == 0 && !sfo.fAnyOperationsAborted;
Run Code Online (Sandbox Code Playgroud)
哪个位于USB闪存驱动器上的文件夹可怕失败,即尽管有标志,它仍被永久删除FOF_ALLOWUNDO.
所以我是不是做对了,或者SHFileOperation API是非常错误的!
知道如何做我上面概述的内容吗?
编辑:我实现了IRecycleBinManager::WillRecycle@Denis Anisimov建议的方法,但显然更多.这是我的C++版本.我需要的方法的第一个接口定义:
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("5869092D-8AF9-4A6C-AE84-1F03BE2246CC")
IRecycleBinManager : public IUnknown
{
public: …Run Code Online (Sandbox Code Playgroud) 我发现了一个非常简单的方法实现的翻译我的谷歌Chrome扩展的(或定位),但似乎只适用于.json,css和js文件.
但是如何html在弹出窗口或选项窗口中本地化我的内容?
html javascript google-chrome internationalization google-chrome-extension