现在我遇到的问题是如何在Windows 8中将字节数组转换为InMemoryRandomAccessStream或IRandomAccessStream?
这是我的代码,但它不起作用,请参考以下代码
internal static async Task<InMemoryRandomAccessStream> ConvertTo(byte[] arr)
{
InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream();
Stream stream = randomAccessStream.AsStream();
await stream.WriteAsync(arr, 0, arr.Length);
await stream.FlushAsync();
return randomAccessStream;
}
Run Code Online (Sandbox Code Playgroud)
然后我创建RandomAccessStreamReference并设置requst数据包以便将图像共享给其他应用程序
private static async void OnDeferredImageStreamRequestedHandler(DataProviderRequest Request)
{
DataProviderDeferral deferral = Request.GetDeferral();
InMemoryRandomAccessStream stream = await ConvertTo(arr);
RandomAccessStreamReference referenceStream =
RandomAccessStreamReference.CreateFromStream(stream);
Request.SetData(referenceStream);
}
Run Code Online (Sandbox Code Playgroud)
但结果是我无法将图像字节数组共享给其他应用程序,我的代码是否有问题?在我看来,将byte []转换为InMemoryRandomAccessStream时会发生错误,但它没有抛出异常.
有谁知道怎么做?如果你可以将字节数组转换为IRandomAccessStream,同样可以帮助我.或者我的代码中有其他错误?
我想在构建之前做一些事情,所以我在预构建事件中添加命令行.
for /f "tokens=*" %a in ('dir /b /s /a-d "$(ProjectDir)lib"') do @copy "%a" "$(TargetDir)" /y
Run Code Online (Sandbox Code Playgroud)
此命令用于将lib(项目目录)中的所有文件复制到调试目标.
但是当我构建项目时,它有一个错误MSB3073:命令"for/f"tokens =*"%a in('dir/b/s/ad"$(ProjectDir)lib"')do @copy"%一个""$(TargetDir)"/ y:VCEnd"退出代码255.但是我在CMD中执行命令,没有问题.
有人知道,如何解决这个问题?IDE是VS2013,C++项目
for for可能在Visual Studio的批处理文件中不起作用吗?
为什么默认情况总是运行?
public class HelloWorld {
public enum ScenarioState {
INIT,
START,
STOP,
DESTROY
}
public static void displayRecord(ScenarioState state) {
switch (state) {
case INIT:
case START:
case STOP:
System.out.println("1");
default:
System.out.println("default");
}
}
public static void main(String[] args) {
ScenarioState state = ScenarioState.INIT;
displayRecord(state);
}
}
Run Code Online (Sandbox Code Playgroud)
预期输出应该是
1
但实际输出:
1
默认
为什么会造成这个问题呢?任何人都可以帮助我