我有一个c ++应用程序,它在try块中包含大部分代码.当我捕获异常时,我可以将用户返回到稳定状态,这很好.但我不再接收崩溃转储了.我真的想弄清楚代码中的异常发生在哪里,所以我可以记录并修复它.
能够在不停止应用程序的情况下获得转储将是理想的,但我不确定这是否可行.
有什么方法可以找出catch块中抛出异常的位置?如果它有用,我在windows xp及更高版本上使用本机msvc ++.我的计划是简单地将崩溃记录到各个用户的计算机上的文件中,然后在达到一定大小后上载崩溃日志.
我收到了错误
client found response content type of '' but expected 'text xml' The request failed with an empty response.
Run Code Online (Sandbox Code Playgroud)
当我尝试执行以下代码时.
//create a PDF from the SQL report
ReportViewer rview = new ReportViewer();
rview.ServerReport.ReportServerUrl = new Uri("http://server/ReportServer$MSSQL2K5?");
List<ReportParameter> paramList = new List<ReportParameter>();
paramList.Add(new Microsoft.Reporting.WinForms.ReportParameter("Batch", "1"));
paramList.Add(new Microsoft.Reporting.WinForms.ReportParameter("InvoiceNo", "0"));
rview.ServerReport.ReportPath = "Report/Report Invoice";
rview.ServerReport.SetParameters(paramList);
string mimeType, encoding, extension, deviceInfo;
string[] streamids;
Microsoft.Reporting.WinForms.Warning[] warnings;
string format = "PDF"; //Desired format goes here (PDF, Excel, or Image)
deviceInfo =
"<DeviceInfo>" +
"<SimplePageHeaders>True</SimplePageHeaders>" +
"</DeviceInfo>"; …Run Code Online (Sandbox Code Playgroud) 项目中的程序集具有标记为ComVisible(true)的类型.
构建(非提升)时,VS尝试注册该DLL并失败:
无法注册程序集"\ path\to\foo.dll" - 访问被拒绝.请确保您以管理员身份运行该应用程序.访问注册表项"HKEY_CLASSES_ROOT\CLSID {FFC174A1-CC90-4E25-A3F6-C30B03368250}"被拒绝.
我们真的不希望DLL在构建机器上注册.我们只想在为最终用户安装它时注册它.
那么可以在不注册DLL的情况下构建吗?
我在Windows 7下使用D2010来编写一个似乎需要管理员权限的应用程序(我认为因为它使用COM与第三方.exe进行通信,这也需要管理员权限).
我已根据需要添加了清单资源,但是当我尝试从IDE调试应用程序时,它会报告
"无法创建流程.请求的操作需要提升"
......它不会运行.如果我以管理员身份运行Delphi,那么我的应用程序运行正常,但这感觉就像一种危险的暴力方法,特别是因为我开发的大多数应用程序都不需要管理员权限.
有没有办法让Delphi在我运行我的应用程序时提示提升,而不是让整个IDE运行升级?
我正在寻找工作(显然)Delphi 7代码,所以我可以检查我的程序是否以管理员权限启动.
提前致谢
[---重要更新---]
到目前为止已经回答了答案中的代码,我意识到我的问题可能不是那么清楚,或者至少是不完整的:
我想知道我的Delphi 7程序是否以"运行管理员"复选框设置启动.
换句话说:我想知道我的Delphi 7程序是否可以在c:\ Program Files ...文件夹中创建/更新文件.
只是检查你是否拥有管理员权限是不够的.
我正在尝试将现有应用转换为VS 11开发人员预览版中的Metro UI应用.这意味着针对WinRT运行时运行(如果我错了,请纠正我).这适用于Windows 8开发人员预览版.
我需要调用REST API,这需要设置特定的用户代理.这在WInRT中似乎不可能.我有以下原始代码:
_request = WebRequest.CreateHttp(url);
_request.UserAgent = UserAgent;
Run Code Online (Sandbox Code Playgroud)
但是没有为HttpWebRequest定义UserAgent属性.我也尝试过:
_request.Headers["User-Agent"] = UserAgent;
Run Code Online (Sandbox Code Playgroud)
这会导致运行时异常:System.ArgumentException:必须使用适当的属性或方法修改此标头.
如何修改User-Agent标头?
如何在Metro风格的C#应用程序中获得按下的指针类型(鼠标左键或鼠标右键)?我没有MouseLeftButtonDown 在任何Metro风格的UI元素中找到事件处理程序.我应该使用PointerPressed事件,但我不知道怎样才能得到按下的按钮.
我使用带有C++的Win32 API创建了一个简单的窗口.窗口显示正常,但是没有样式,因此窗口上的所有按钮等都出现在Windows 95/Me样式中,与现代windows 7外观相反.那么,我怎样才能看到这种现代感呢?
我已经尝试过使用这个(http://msdn.microsoft.com/en-us/library/windows/desktop/bb773175%28v=vs.85%29.aspx)微软文档中提到的xml方法但该程序没有编译.我相信这是因为我使用MinGW编译器反对VC++编译器,但我可能错了.另外,我现在正在尝试SetWindowTheme功能,但我不确定它是如何工作的以及如何包含.
可能导致此问题的一些注意事项:
我在使用TFS时遇到了麻烦.它不会构建我的项目,因为
找不到类型或命名空间名称'Newtonsoft'(您是否缺少using指令或程序集引用?)
我尝试通过nuget添加它,但我仍然收到此错误.当我通过nuget添加这个dll时,我有其他项目可以正常工作.此外,该项目的本地构建是成功的.我在解决方案中创建了一个新文件夹,然后将dll放入其中并引用它.