none
如何给IWICStream赋值?? RRS feed

  • 问题

  • public ref class Test sealed
    {
    public:
    	Test() {}
    
    	//void SetPicture(Microsoft::WRL::ComPtr<IStream> stream) {    // 编译不通过
    	//	//m_stream->Clone(&stream);
    	//}
    
    private:
    	Microsoft::WRL::ComPtr<IWICStream>			m_stream;
    };
    
    我想要根据外面的stream设定Test类中的m_stream, 有什么办法

    2012年10月19日 6:08

答案

全部回复

  • 添加一个属性,

    在public中添加啊一个 property,

    实现set就可以实现一个只写的属性。


    Thanks! Damon.Tian

    2012年10月19日 7:05
  • 不行的。

    有如下编译错误:ignature of public member contains native type 'Microsoft::WRL::ComPtr<T>'
    1>          with
    1>          [
    1>              T=IWICStream
    1>          ] (MainPage.xaml.cpp)

    	public ref class Test sealed
    	{
    	public:
    		Test() {}
    
    		//void SetPicture(Microsoft::WRL::ComPtr<IStream> stream) {    // 编译不通过
    		//	//m_stream->Clone(&stream);
    		//}
    
    		property Microsoft::WRL::ComPtr<IWICStream> ImageStream
    		{
    			//Microsoft::WRL::ComPtr<IWICStream> get()
    			void set(Microsoft::WRL::ComPtr<IWICStream> stream) {
    				
    			}
    		}
    
    	private:
    		Microsoft::WRL::ComPtr<IWICStream>			m_stream;
    	};

    2012年10月19日 7:15
  • 我最终的目的是将一个IStream读到InMemoryRandomAccessStream中?

    有什么办法???

    2012年10月19日 7:19
  • 哦,没有注意你的类型,能暴漏给其他语言使用的组件中,pubulic的部分都必须是winRT类型。

    如果你是内部调用的话,可以作为程序集可见,如果要暴漏出去,就必须更换类型。


    Thanks! Damon.Tian

    2012年10月19日 7:36
  • 现在就是这个问题,我想暴露一个可以表示Bitmap的变量。

    可是用了InMemoryRandomAccessStream, IRandomAccessStream都觉得不好用

    2012年10月20日 0:57
  • 沒有人回答,所以我自己搞定吧。

    参考了英文社区那边的一个帖子(http://social.msdn.microsoft.com/Forums/zh-CN/winappswithnativecode/thread/157da037-fdc4-4c4f-b12c-1c6ae77e78b6),目前成功将IStream转为IRandomAccessStream.....

    结贴了。。。

    2012年10月20日 7:25