Microsoft MVP성태의 닷넷 이야기
C#으로 컨버팅 하려고 하는데요... [링크 복사], [링크+제목 복사],
조회: 16985
글쓴 사람
양주호 (goskang at naver.com)
홈페이지
첨부 파일
 

함수 : 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]


비밀번호

댓글 작성자
 



2015-10-22 06시12분
재현 가능한 최소한의 예제를 올려주세요. (최소한의 예제입니다.)
정성태

NoWriterDateCnt.TitleFile(s)