Я очень плохо знаком с c ++ и надеялся, что кто-нибудь сможет заполнить пробелы при установке карты памяти. Я пытаюсь смонтировать карту памяти под Windows Mobile. OpenStore может работать, потому что я не получаю сообщение об ошибке, но я все еще пытаюсь выяснить синтаксис для OpenPartition, MountPartition и GetStoreInfo. Если бы кто-то мог дать мне пример, это действительно помогло бы.
Это то, что я до сих пор:
#include "stdafx.h"#include <storemgr.h>
#include <stdio.h>
int _tmain( int /*argc*/, _TCHAR* /*argv*/[] )
{
STOREINFO si = { 0 };
si.cbSize = sizeof( STOREINFO );
HANDLE hDsk;
HANDLE Findpart;
BOOL success = FALSE;
DWORD Count = 600;
WCHAR szDisk[] = L"DSK2:";
hDsk = OpenStore(szDisk);
HANDLE hPartition = OpenPartition(hDsk, TEXT("Part00"));
MountPartition(hPartition);
if(hDsk == INVALID_HANDLE_VALUE)
printf("Error opening store");
if (!GetStoreInfo(hDsk, &si))
printf("Error getting info");
if(!DismountStore(hDsk))
printf("Error Dismounting");
if(!FormatStore(hDsk))
printf("Error Formatting");
CloseHandle(hDsk);
}
здесь выдержка из какого-то проекта быстрого тестирования. Надеюсь, поможет.
HANDLE hStore, hPartSearch, hPart;
STOREINFO StoreInfo;
PARTINFO PartInfo[3];
DWORD error;
BOOL bRes;
hStore = OpenStore(L"DSK1:");
if (hStore == INVALID_HANDLE_VALUE)
return;
memset (&StoreInfo, 0, sizeof (StoreInfo));
StoreInfo.cbSize = sizeof(STOREINFO);
if (!GetStoreInfo(hStore, &StoreInfo))
{
error = GetLastError();
}
// 1st part
PartInfo[0].cbSize = sizeof(PartInfo[0]);
hPartSearch = FindFirstPartition(hStore, &PartInfo[0]);
// 2nd part
PartInfo[1].cbSize = sizeof(PartInfo[1]);
FindNextPartition(hPartSearch,&PartInfo[1]);// Format and remount boot partition
hPart = OpenPartition(hStore, PartInfo[0].szPartitionName);
bRes = DismountPartition(hPart);
error = GetLastError();
bRes = FormatPartition(hPart);
error = GetLastError();
bRes = MountPartition(hPart);
error = GetLastError();
Спасибо тиммф
#include "stdafx.h"#include <storemgr.h>
#include <stdio.h>
int _tmain( int /*argc*/, _TCHAR* /*argv*/[] )
{
STOREINFO si = { 0 };
si.cbSize = sizeof( STOREINFO );HANDLE hStore, hPartSearch, hPart;
STOREINFO StoreInfo;
PARTINFO PartInfo[3];
DWORD error;
BOOL bRes;
hStore = OpenStore(L"DSK2:");
if (hStore == INVALID_HANDLE_VALUE)
{
printf("Error opening store");
}
memset (&StoreInfo, 0, sizeof (StoreInfo));
StoreInfo.cbSize = sizeof(STOREINFO);
if (!GetStoreInfo(hStore, &StoreInfo))
{
error = GetLastError();
}
// 1st part
PartInfo[0].cbSize = sizeof(PartInfo[0]);
hPartSearch = FindFirstPartition(hStore, &PartInfo[0]);
// 2nd part
PartInfo[1].cbSize = sizeof(PartInfo[1]);
FindNextPartition(hPartSearch,&PartInfo[1]);// Format and remount boot partition
hPart = OpenPartition(hStore, PartInfo[0].szPartitionName);
bRes = DismountPartition(hPart);
error = GetLastError();
bRes = FormatPartition(hPart);
error = GetLastError();
bRes = MountPartition(hPart);
error = GetLastError();
}