Windows phone 8 使用文件调试WP8本机代码
我正在开发一个WP8应用程序,它有一些本机代码(运行时组件)。 在运行时组件中,我需要检查c样式数组的内容。 因为这个数组不小,我想我能做的最好的事情就是把数组写在一个文件中 使用fopen/fwrite/fclose; 通过检查fopen和fwrite返回的值,我可以看到它成功了。 但我找不到该文件(使用Windows Phone Power Tools) 那么文件是在哪里写的呢?Windows phone 8 使用文件调试WP8本机代码,windows-phone-8,Windows Phone 8,我正在开发一个WP8应用程序,它有一些本机代码(运行时组件)。 在运行时组件中,我需要检查c样式数组的内容。 因为这个数组不小,我想我能做的最好的事情就是把数组写在一个文件中 使用fopen/fwrite/fclose; 通过检查fopen和fwrite返回的值,我可以看到它成功了。 但我找不到该文件(使用Windows Phone Power Tools) 那么文件是在哪里写的呢? 是否有其他方法从visual studio将数组内容转储到文件(在计算机上)?我不熟悉WP8中的fopen/fw
是否有其他方法从visual studio将数组内容转储到文件(在计算机上)?我不熟悉WP8中的fopen/fwrite/fclose API。这可能意味着它不是一个可以用来提交应用程序的白名单API。在C++中使用ISOSt店时,最好只使用“Windows::存储:Apple:Debug::Noto-LoopLoad”。请参阅Win8代码示例@谢谢Justin 以下是我最终如何做到这一点:
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();
您是否重新启动了Windows Phone电动工具?不幸的是,它不会自动刷新以获取IsoStore的更改。贾斯汀:是的,这是我尝试的第一件事。还有一个“刷新”contexmenu按钮,但也没用。你怎么知道fopen/fwrite/fclose被列入黑名单?@entropy我怀疑他们是这样的-微软会因为将标准库的一部分列入黑名单而在C开发人员中引起骚乱。。。
FILE *fp = fopen("Data.bin", "wb");
if (fp)
{
int ret = fwrite(pData, 1, nData, fp);
fclose(fp);
}