c# - 如何使用诺基亚 API 获取手机驱动器的大小(免费,总计)?

标签 c# mobile nokia

我想获取手机驱动器的大小。 我正在使用“Nokia-PC-Connectivity”。关于文件系统 API,我在名为 CONA_Folder_Info 的 CONADifinition 函数上找到了该函数,但该函数不支持 FreeSize 和 Total Size,但有 CONA_Folder.Info2 及其实例支持这些变量.

但是当我按如下方式使用 CONA_Folder.Info2 时:

CONADefinitions.CONAPI_FOLDER_INFO2 FolderInfo;
int iResult = 0;// Allocate memory for buffer
IntPtr Buffer = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(CONADefinitions.CONAPI_FOLDER_INFO2)));                      
iResult = CONAFileSystem.CONAFindNextFolder(hFindHandle, Buffer);
while (iResult == PCCSErrors.CONA_OK )
{
  FolderInfo = (CONADefinitions.CONAPI_FOLDER_INFO2)Marshal.PtrToStructure(Buffer,    typeof(CONADefinitions.CONAPI_FOLDER_INFO2));
  if (FolderInfo.pstrName[0].ToString() != "C" && level == 0) 
  {
  }

我得到这个异常:

FatalExecutionEngineError was detected Message: The runtime has encountered a fatal error. The address of the error was at 0x7a0ba769, on thread 0x1278. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack.

注意:我使用 S60 software platform .应用语言为C#。

更多的解释请问我。

最佳答案

当您尝试将缓冲区中的数据转换为不同于最初由 CONAFileSystem.CONAFindNextFolder 创建的结构类型时,您得到异常是正确的。

您试图将 CONADefinitions.CONAPI_FOLDER_INFO 类型的数据结构强制转换为 CONADefinitions.CONAPI_FOLDER_INFO2 类型的结构。它们几乎肯定有不同的长度等等,所以这种方法极不可能奏效。

根据在 Symbian OS 上进行 C++ 开发的经验,诺基亚可能在这里使用的模式是他们随后开发了更新版本的 API,因此创建了更新版本的 CONADefinitions.CONAPI_FOLDER_INFO 结构(即CONADefinitions.CONAPI_FOLDER_INFO2)。

假设这是正确的,则有 3 种可能性:
1) 第一个函数有一个枚举参数,指定要创建哪个版本的输出结构。
2) 有一个返回新结构的新函数,例如CONAFileSystem.CONAFindFirstFolder2, CONAFileSystem.CONAFindNextFolder2
3) 诺基亚已经在内部开发了新版本,但尚未公开发布。

关于c# - 如何使用诺基亚 API 获取手机驱动器的大小(免费,总计)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/409487/

相关文章:

c# - 在 ASP.Net MVC3 中使用 OpenID,我从哪里获取用户数据?

c# - 在多线程中调用静态方法

qt - 在 Qt 中制作自定义菜单栏

python - pyBluez python 服务器 - 手机看不到我的服务器

mobile - Youtube Iframe API 不适用于移动设备?

css - 诺基亚 lumia 的响应式设计技巧

c#:将一个int转换成它适合的最小字节数组

c# - 根据主视图自定义过滤器更新局部 View

css - 手机浏览器h1标签定位

android - 从 Facebook 上的 PlayStore 共享应用程序会在缩略图中显示泰语字符?