2014-11-10 2 views
-1

VS Express 2010 Express를 사용하고 있습니다. 내 자신의 DLL을 만들고 사용하려고 시도한 것은 이번이 처음입니다. 처음에는 괜찮 았던 하나의 프로젝트 솔루션 (DLL이 없음)을 작성한 다음 가장 중요한 클래스 (ClassZ라고 부름)를 DLL에 넣으라는 요청을 받았기 때문에 고객이 모든 코드를 볼 수 없었습니다. 그래서 솔루션에 새 프로젝트를 추가하고 클래스 라이브러리로 만들었습니다. 그런 다음 ClassZ 클래스를 잘라내어 새로운 클래스 라이브러리 프로젝트에 붙여 넣습니다. 그런 다음 주 프로젝트 (콘솔 응용 프로그램)에서 해당 클래스 라이브러리 프로젝트에 대한 참조를 성공적으로 추가했다고 생각합니다. 모든 것이 NS1의 동일한 네임 스페이스에 있습니다.C에서 DLL을 사용하는 데 문제가 있습니다.

하지만 지금은 구축이 나에게 다음과 같이 오류 메시지의 모든 종류 (I 프랑스의 메시지를 번역하고 있습니다) 제공 : 오버로드 된 방법은 가장 NS1.ClassZ.Method1 '에 해당

오류 (바이트 [] , ushort, ushort, ref NS1.ClassA)에 잘못된 인수가 있습니다.

오류 ref NS1.ClassA [.source filepath here ...]와 ref NS1.ClassA [... DLL 파일 경로는 여기에서 변환 할 수 없습니다. ..]

다른 말로하면 클래스 라이브러리의 메소드를 호출 할 때마다 오류가 발생합니다. 그런데 그들은 모두 정적 메서드로 선언됩니다.

+4

두 프로젝트에서 같은 수업을하는 것 같습니다. 그러지 마. – SLaks

+1

"ClassZ라고하는 가장 중요한 클래스 중 하나를 DLL에 넣으라는 요청을 받았기 때문에 고객이 코드를 볼 수 없었습니다."코드를 보지 못하게 할 수 있습니다. .NET DLL은 디 컴파일이 매우 쉽습니다. –

+0

고객이 코드를 "보고"염려하는 경우 난독 화를 조사해야합니다. – juharr

답변

0

Slaks 덕분에 예 두 프로젝트에서 모두 ClassA 복사본을 가지고있었습니다. 이것은 헤더 파일을 여러 프로젝트에 복사하는 C++ 연습에서 남은 것입니다! 클래스는 헤더 파일처럼 보였다.

관련 문제