PC Review
Forums
Newsgroups
Microsoft DotNet
Microsoft Dot NET Framework
Help!!!
Forums
Newsgroups
Microsoft DotNet
Microsoft Dot NET Framework
Help!!!
![]() |
Help!!! |
|
|
Thread Tools | Rate Thread |
|
|
#1 |
|
Guest
Posts: n/a
|
I have writen a dll(EmrCmprs.dll) using c++ and a function in this DLL:
__declspec(dllexport) long EmrDecompress( char *pcCompressData /*in*/, long lCompressDataSize/*in*/, char **ppcRawData/*unicode out*/, long *plRawDataSize/*out*/ ) { ... } Then,i invoke the function(EmrDecompress) in dotframework: [DllImport("EmrCmprs.dll")] private static extern int EmrDecompress_BYTE( byte[] pSrc, int iSrcLen, [MarshalAs(UnmanagedType.LPWStr)] ref string pDst, ref int iDstLen ); private void Test_Click(object sender, System.EventArgs e) { byte[] pSrc ; int iSrcLen; string pDst = null; int iDstLen = 0; try { // -- open file FileStream fsRead = new FileStream(@"c:\chu0.DAT" , FileMode.Open , FileAccess.Read , FileShare.ReadWrite); // -- get data iSrcLen = (int)fsRead.Length; pSrc = new byte[fsRead.Length]; fsRead.Read(pSrc , 0 , (int)fsRead.Length); // -- close file fsRead.Close(); int iResult = EmrDecompress(pSrc,iSrcLen,ref pDst,ref iDstLen); if(iResult != 0) { throw new Exception("Decompress is failed!"); } } catch (Exception ex) { throw ex; } } But i get error pDst and right iDstLen! (In C++,the function of EmrDecompress do right thing.) I think the following parameter is not right: [MarshalAs(UnmanagedType.LPWStr)] ref string pDst but how to modify it ? I try again and again,but failed! Can you help me? Thanks in advance! Morice |
|
![]() |
|
| Thread Tools | |
| Rate This Thread | |
|
|

Main Page 

