함수 : int SendFile( IN BYTE *pFileName, IN int nFileSize, OUT BYTE *pStatus )
#define BUFSIZ 1024
BYTE *pFileName, = "CC00331";
int nFileSize = 150000;
BYTE pStatus[BUFSIZ];
int rc = SendFile( pFileName, nFileSize, pStatus);
이렇게 사용하는 것을 C#에서 사용하고 싶은데요....
[DllImportAttribute("CDCommDLL.dll", CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl)]
public static extern int SendFile(
[MarshalAs(UnmanagedType.LPArray), In()] byte[] pFileName,
[MarshalAs(UnmanagedType.I4), In()] int nFileSize,
[MarshalAs(UnmanagedType.LPArray), Out()] byte[] pStatus);
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)]
private byte[] pFileName;
private const int BUFFER_SIZE = 1024;
int nFileSize = 0;
byte[] pStatus = new byte[BUFFER_SIZE];
int rc = SendFile(pFileName, nFileSize, pStatus);
이렇게 하면
"보호된 메모리를 읽거나 쓰려고 했습니다. 대부분 이러한 경우는 다른 메모리가 손상되었음을 나타냅니다."
이런 에러가 납니다.
무엇이 문제인지요?
[최초 등록일: ]
[최종 수정일: 10/22/2015]