描述:
我有个ActiveX控件,我自己做的,我定义了一个接口, [id(1)] boolean SetContent(BSTR JpgBuffer,long length);
我是想在应用程序中传进来一个BYTE*的二进制字符串和长度,
afx_msg BOOL SetContent(LPCTSTR JpgBuffer,long length);
在应用程序中,得到接口:
BOOL CJpgView::SetContent(LPCTSTR JpgBuffer, long length)
调用时 m_JpgCtrl.SetContent((const char*)buffer,length);//这个buffer我定义成BYTE*的。
我给这些Buffer都new了一个空间给他。
但是,在传参数的时候,字符串会改变,length不变,奇怪的是,如果只是传普通的字符串,如:"1234adafd"时,字符串却不会改变。
不知道是为什么?该怎么做?
我的目的只要传一个unsigned char *和一个long 。
解决方案1:
声明的地方改了没有?
解决方案2: VARIANT吧!
[id(1)] boolean SetContent(VARIANT JpgBuffer,long length);
CoTaskMeyAlloc
解决方案4:顶一下,观注!
解决方案5:LPSTR试试