2011-03-29 7 views
0

안녕하세요 일부 기능으로 dll을 만들고 싶습니다. 우선 테스트 할 간단한 예제를 시도하고 있습니다. 예를 들어 아래와 같은 코드로 새로운 클래스 라이브러리를 생성합니다. 내가 (오류 없음)를 구축하고 DLL 파일을 만들 때 , 나는 내가 그것을 컴파일 할 수C에서 dll로 인한 문제 #

[DllImport("nllibrary.dll")] 
public static extern long Add(long i, long j); 

에 의해 내 다른 프로젝트에 사용하려고하지만 응용 프로그램을 실행하려고하면, 그것은 "나에게 오류를 제공 진입 점을 찾을 수 없습니다 ". 그리고 depends.exe로이 DLL을 보면 dll에 아무 기능도 없다. 내 DLL에 문제가 있습니까?

DLL의 코드 : 당신은 [DllImport] 속성을 사용할 필요가 없습니다

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 


namespace nlLibrary 
{ 
    public class nlClass 
    { 

     public static long Add(long i, long j) 
     { 
      return (i + j*2); 
     }   
    }  
} 
+2

'DllImport'를 사용할 필요가 없습니다. – Snowbear

+0

콘솔 앱? Main과 같은 엔트리 포인트를 가지고 계시지 만, static int Main (string [] args)과 같이 변경 될 수있는 엔트리 포인트를 보셔야합니다. nlLibrary.nlClass.Add()를 호출 하시겠습니까 아니면 ...? – kd7

+0

또한, DLL을 가져올 필요가 없습니다. 생성 한 어셈블리에 대한 참조 만 가져 오십시오. – kd7

답변

6

. 그것은 관리되지 않는 C/C++ 라이브러리를 호출하기위한 것입니다. .NET를 들어 당신은 단순히 프로젝트 참조에 생성 된 DLL을 추가하고 직접 사용

enter image description here

그래서 당신은 (콘솔으로 Proj1 (클래스 라이브러리) 및 Proj2라는 비주얼 스튜디오 솔루션에서 두 개의 프로젝트가있는 경우 예를 들어, 응용 프로그램)에서 Proj2의 참조를 마우스 오른쪽 버튼으로 클릭하고 프로젝트 참조 탭에서 Proj1을 선택합니다. 네임 스페이스를 사용하여 적절한 추가 한 후

long result = nlClass.Add(1, 3); 

: 그럼 당신은 단순히 직접 클래스를 사용

using nlLibrary; 
+0

감사합니다. 작동합니다! – rodro

0

또한, 당신은 DLL을 실행할 수 없습니다. dll (디버그)을 실행하려고하면 오류 메시지가 나타납니다. DLL을 테스트하려면 test project을 만드십시오.

+0

나는 dll을 실행하지 않는다. 다른 프로젝트 (windows form)에 추가했습니다. – rodro

+0

@rodro : 양식 프로젝트가 기본 프로젝트인지 확인해야합니다. 마우스 오른쪽 버튼으로 클릭하고 "Startup Project로 설정"을 선택하십시오. 이제 DLL이 시작 프로젝트가됩니다. – Will