user1968335
user1968335

Reputation: 276

Debugging WP8 Native Code using a file

I'm developing a WP8 app that has some native code (runtime component). Inside the runtime component I need to check to content of a c style array. Because this array is not small, I thought the best I could do is write the array in a file using fopen/fwrite/fclose; Checking the returned value from fopen and fwrite, I can see that it succeeded. But I cannot find the file (using Windows Phone Power Tools).

So where has the file been written? Is there another way to dump the content of the array to a file (on the computer) from visual studio ?

Upvotes: 1

Views: 933

Answers (2)

user1968335
user1968335

Reputation: 276

Thanks Justin,

here's how I ended up doing it:

auto folder = Windows::Storage::ApplicationData::Current->LocalFolder;
Concurrency::task<Windows::Storage::StorageFile^> createFileOp(
    folder->CreateFileAsync(L"Data.bin", Windows::Storage::CreationCollisionOption::ReplaceExisting));

createFileOp.then(
    [nData, pData](Windows::Storage::StorageFile^ file)
    {
        return file->OpenAsync(Windows::Storage::FileAccessMode::ReadWrite);
    })
    .then([nData, pData](Windows::Storage::Streams::IRandomAccessStream^ stream)
        {
            auto buffer = ref new Platform::Array<BYTE>(pData, nData);

            auto outputStream = stream->GetOutputStreamAt(0);
            auto dataWriter = ref new Windows::Storage::Streams::DataWriter(outputStream);                        
            dataWriter->WriteBytes(buffer);

            return dataWriter->StoreAsync();
        })
   .wait();

Now compare that to what I "meant" :

FILE *fp = fopen("Data.bin", "wb");
if (fp)
{
    int ret = fwrite(pData, 1, nData, fp);
    fclose(fp);
}

Upvotes: 1

JustinAngel
JustinAngel

Reputation: 16102

I'm unfamiliar with the fopen/fwrite/fclose APIs in WP8. Which probably means it's not a whitelisted API you can use to submit your app with. It's best if you just use "Windows::Storage::ApplicationData::Current->LocalFolder" when working with IsoStore in C++. See Win8 code sample @ http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh700361.aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1

Upvotes: 1

Related Questions