小编use*_*804的帖子

任务异常管理c#

我运行一个包含2个项目的解决方案:app和sdk.

通过应用程序,我创建了一个sdk的实例,以便应用程序可以启动.问题是,当我在Task内部运行的代码中遇到Exception时,不会抛出Unhandled Exception,因此我的应用程序一直在运行,并且没有意识到SDK中发生了意外情况.

AppDomain.CurrentDomain.UnhandledException在App和SDK中注册了该事件,但正如在任务中抛出异常时所述,不会调用事件处理程序.

有什么东西我错过了吗?

.net c# exception-handling task-parallel-library async-await

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

将字符串解析为LPCWSTR

我正在使用boost-filesystem来搜索具体路径中的所有文件.我还想检索这个文件的创建数据,最后打开和最后更新,所以当我在Windows中工作时,我需要使用GetFileTime(这需要一个我将通过CreateFile函数得到的HANDLE.

关键是通过boost文件系统我得到一个字符串,如

string filename ="C:\ Users\MyUser\Desktop\PDN.pdf";

我需要将此字符串转换为LPCWSTR.

因此我做了几次尝试都失败了,例如:

HANDLE hFile = CreateFile((LPCWSTR)fileName.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

但是当这样做时,它成功了:

HANDLE hFile = CreateFile(L"C:\\Users\\MyUSer\\Desktop\\PDN.pdf", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何使用字符串变量将字符串解析为PWSTR?如果可能的话(我猜不是),是否有任何函数可以改变原始路径添加斜杠哪里找到另一个斜杠?

非常感谢

编辑:这是我在这里阅读后的方式:

wstring fileFullPathWstring = winAPII.stringToWstring(iter-> path().string());

HANDLE hFile = CreateFile(fileFullPathWstring.c_str(),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);

使用功能:

wstring WinAPIIteraction::stringToWstring(string stringName){
    int len;
    int slength = (int)stringName.length() + 1;
    len = MultiByteToWideChar(CP_ACP, 0, stringName.c_str(), slength, 0, 0);
    wchar_t* buf = new wchar_t[len];
    MultiByteToWideChar(CP_ACP, 0, stringName.c_str(), slength, buf, len);
    std::wstring r(buf); …
Run Code Online (Sandbox Code Playgroud)

c++ winapi boost boost-filesystem

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

使用C++获取Windows文件信息

有没有办法可以使用C++检查Windows文件的某些属性?想要的形式是诸如上次访问日期,MIME类型,......

对于其他一些信息提取,我正在使用Boost Filesystem.

提前致谢

c++ windows winapi boost

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

从C++中的扩展获取MIME类型

有没有办法在给定文件扩展名的情况下在C++中获取MIME类型?

我读过HKEY_CLASSES_ROOT,但老实说我不知道​​如何使用它.

我想要的是输入:

 string extension=".pdf"; 
 string extension2=".avi";
Run Code Online (Sandbox Code Playgroud)

获得输出:

string mimeType ="application/pdf";
string mimeType2 ="video/x-msvideo";

我知道我可以自己做,但我想这里已经做了一些工作.

非常感谢

c++ windows winapi

0
推荐指数
2
解决办法
4037
查看次数