none
이미 작성된 실행파일에서 DLL제외시키는 방법은 무엇인지요? RRS feed

  • 질문

    여쭙고 싶은 것은

    실행 파일 1개와 여러 개의 dll (라이브러리) 프로젝트로 나누어 컴파일하면 된다고 하셨는데

    1.이미 작성된 실행파일에서 DLL제외시키는 방법은 무엇인지요?

    2.여러개의 DLL프로젝트로 나누어 프로젝트를 만드는 방법은 어떻게 하는지요?

    3.위의1번과 2번에서 만든 프로젝트파일을 연계링크는 어떻게 하는지요?

      아니면 자동으로 링크되는지요?

    답변주시면 더욱 감사하겠습니다

    ------------------------------------------------------------------------------------회사에서 개발용으로 Visual Studio 2013 professional을 구매하였습니다

    Visual Studio 2013 professional 에서 Visual Basic을 사용하여 실행파일을 만드는 것에서 질문드립니다

    • 이전엔 실행파일한개로도 용량이 적어서 문제가 없었는데 업무가 늘다보니 프로그램본수도 많아져서

      컴파일한 실행파일 용량이 너무 커져서 사양이 낮은 컴에서 특히 실행이 너무 느려집니다

      그래서 대안으로 컴파일한 파일을 실행파일 한개로가 아닌 여러개의 파일로 나누어 컴파일하고자 합니다

      방법을 알려주시기 바랍니다

      (예: 파워빌더에서는 실행exe파일 한개와 pbd파일 여러개로 나뉘어 컴파일됩니다 비쥬얼베이직에도 이런 방법이

      있을 듯하여 질문드립니다)

      아울러 파일배포하는 방법으로 Limmitted Install Sheild를 사용하고자 하는데 현재 회사 개발자는 모두 3명뿐입니다

      무료로 Install Sheild 사용하는 방법 알려주시기 바랍니다

      프로젝트메뉴에서 선택하라는 지시사항대로 하니 유료로밖에 진행이 되지 않습니다






    • 편집됨 수선화 2015년 5월 15일 금요일 오전 5:07
    2015년 5월 14일 목요일 오전 6:32

답변

  • 프로그램을 DLL, EXE 및 기타 바이너리 등 여러 파일로 나누는 것은 프로그램 구조에 대한 문제입니다.

    프로그램이 어떤 일을 하며 어떤 프로세스를 타는지는 개발하신 분들께서 잘 아실 것인데요, 그 안에서 어떤 부분을 DLL로 라이브러리화 할 것이며, 리소스는 어디서 관리할 것이며, EXE에는 어떤 기능을 남길 것이며, 어느 시점에서 DLL로 라이브러리화 한 컴포넌트를 로드하고 내릴 것이며, 어떤 타입의 응용프로그램으로 만들지는 그에 맞게 고민하셔야 하는 것이 아닐까 싶습니다.

    DLL은 무엇입니까?

    위 링크는 DLL에 대한 대략적인 개념을 설명한 KB입니다. Win32 어플리케이션 기준이고요, Visual Studio 2013에서 Visual Basic을 사용하셨다면 아마도 Visual Basic .NET 어플리케이션을 만드신 것이 아닐까 싶은데, 그렇다면 프로젝트 생성 시에 Class Library를 선택하셔서 DLL을 만들 수 있을 것입니다. 구조에 따라서 특정 기능을 클래스화 하여 클래스만 떼서 넣을 수도 있고 그보다 더 많거나 적은 기능을 담을 수 있겠죠. 프로그램이 무겁다라는 것 외에는 아무 정보가 없기 때문에 나머지 판단은 개발하신 분들께서 고민하셔야 할 것 같네요.

    그리고 설치 및 배포 프로젝트의 경우 Visual Studio 2010까지 제공하던 기본 설치 및 배포 프로젝트 템플릿은 Visual Studio 2013부터는 제공하지 않고 있습니다. 다만 extension(애드온)의 형태로 Microsoft에서 제공하는 것이 있으므로 이것을 설치하여 기존처럼 사용하시거나 또는 NSIS 같은 공개된 무료 설치 플랫폼을 이용하시는 것이 좋겠습니다.

    Microsoft Visual Studio 2013 Installer Projects

    위 extension에 대한 설명이 있는 페이지:
    Visual Studio Installer Projects Extension

    Visual Studio 2010에서 부터 링크 형태로 제공되기 시작한 InstallShield Limited Edition은 기능상 제약이 있는 버전입니다. 이것을 일단 등록하여 무료버전으로 사용해보시고 원하는 요구사항에 맞게 구현이 어렵다면, 비용은 다소 들겠지만 그만한 가치가 있다고 생각하시면 유료 버전을 구매하시거나, 또는 위에서 말씀 드린 설치 및 배포 프로젝트 extension이나 공개 설치 플랫폼을 이용하시기 바라겠습니다.

    • 답변으로 표시됨 수선화 2015년 5월 19일 화요일 오전 3:21
    2015년 5월 15일 금요일 오전 9:12
  • 위 3개 질문에 대한 답변도 드립니다.

    1.이미 작성된 실행파일에서 DLL제외시키는 방법은 무엇인지요?

    > 위 답변에서 드린 것처럼 프로그램 구조에 따라서 분리가 가능한 부분을 클래스화 하여 DLL로 빼놓으신 후 응용프로그램 프로젝트에서 import하여 활용하시면 됩니다.

    2.여러개의 DLL프로젝트로 나누어 프로젝트를 만드는 방법은 어떻게 하는지요?

    > 솔루션 내에 Class Library 타입의 프로젝트를 추가해주시면 됩니다.

    3.위의1번과 2번에서 만든 프로젝트파일을 연계링크는 어떻게 하는지요?

    > 솔루션 탐색기 내에서, DLL을 가져다 쓸 응용 프로그램 프로젝트에서 오른쪽 버튼을 누르고 Add를 누르시면 Reference가 있습니다. 그것을 선택하신 후, 좌측 트리에서 솔루션을 눌러보시면, 추가하신 Class Library 타입의 프로젝트가 있을 것입니다. 체크를 하신 후 완료를 누르면 응용 프로그램에서 사용 가능합니다. 한편, 응용 프로그램 코드 내에서는 Imports를 입력하시면 우측에 사용 가능한 라이브러리들의 이름이 리스트될 것입니다. 거기서 새로 추가하신 Class Library의 이름을 선택하시면 코드 내에서 해당 라이브러리의 클래스나 타입을 자유롭게 사용하실 수 있습니다.

    • 답변으로 표시됨 수선화 2015년 5월 19일 화요일 오전 3:21
    2015년 5월 15일 금요일 오전 9:33

모든 응답

  • VB의 경우, 실행 파일 1개와 여러 개의 dll (라이브러리) 프로젝트로 나누어 컴파일하면 됩니다.

    개발자가 3명이라고 해서 무료로 InstallShield를 사용하는 방법은 없습니다. 아마도 유료에서만 제공하는 옵션을 선택한 듯 싶은데, Limited Edition 버전은 유료의 일부 기능만을 제공하는 무료 버전이기 때문에 모든 기능을 원한다면 정식 버전을 구매해야 합니다. (아니면, 다른 대안으로 무료 설치 방식을 찾아서 적용해야 합니다.)

    • 답변으로 표시됨 수선화 2015년 5월 14일 목요일 오후 2:14
    • 답변으로 표시 취소됨 수선화 2015년 5월 15일 금요일 오전 4:21
    2015년 5월 14일 목요일 오전 11:14
  • 답변감사합니다

    여쭙고 싶은 것은

    실행 파일 1개와 여러 개의 dll (라이브러리) 프로젝트로 나누어 컴파일하면 된다고 하셨는데

    1.이미 작성된 실행파일에서 DLL제외시키는 방법은 무엇인지요?

    2.여러개의 DLL프로젝트로 나누어 프로젝트를 만드는 방법은 어떻게 하는지요?

    답변주시면 더욱 감사하겠습니다

    2015년 5월 15일 금요일 오전 4:21
  • 프로그램을 DLL, EXE 및 기타 바이너리 등 여러 파일로 나누는 것은 프로그램 구조에 대한 문제입니다.

    프로그램이 어떤 일을 하며 어떤 프로세스를 타는지는 개발하신 분들께서 잘 아실 것인데요, 그 안에서 어떤 부분을 DLL로 라이브러리화 할 것이며, 리소스는 어디서 관리할 것이며, EXE에는 어떤 기능을 남길 것이며, 어느 시점에서 DLL로 라이브러리화 한 컴포넌트를 로드하고 내릴 것이며, 어떤 타입의 응용프로그램으로 만들지는 그에 맞게 고민하셔야 하는 것이 아닐까 싶습니다.

    DLL은 무엇입니까?

    위 링크는 DLL에 대한 대략적인 개념을 설명한 KB입니다. Win32 어플리케이션 기준이고요, Visual Studio 2013에서 Visual Basic을 사용하셨다면 아마도 Visual Basic .NET 어플리케이션을 만드신 것이 아닐까 싶은데, 그렇다면 프로젝트 생성 시에 Class Library를 선택하셔서 DLL을 만들 수 있을 것입니다. 구조에 따라서 특정 기능을 클래스화 하여 클래스만 떼서 넣을 수도 있고 그보다 더 많거나 적은 기능을 담을 수 있겠죠. 프로그램이 무겁다라는 것 외에는 아무 정보가 없기 때문에 나머지 판단은 개발하신 분들께서 고민하셔야 할 것 같네요.

    그리고 설치 및 배포 프로젝트의 경우 Visual Studio 2010까지 제공하던 기본 설치 및 배포 프로젝트 템플릿은 Visual Studio 2013부터는 제공하지 않고 있습니다. 다만 extension(애드온)의 형태로 Microsoft에서 제공하는 것이 있으므로 이것을 설치하여 기존처럼 사용하시거나 또는 NSIS 같은 공개된 무료 설치 플랫폼을 이용하시는 것이 좋겠습니다.

    Microsoft Visual Studio 2013 Installer Projects

    위 extension에 대한 설명이 있는 페이지:
    Visual Studio Installer Projects Extension

    Visual Studio 2010에서 부터 링크 형태로 제공되기 시작한 InstallShield Limited Edition은 기능상 제약이 있는 버전입니다. 이것을 일단 등록하여 무료버전으로 사용해보시고 원하는 요구사항에 맞게 구현이 어렵다면, 비용은 다소 들겠지만 그만한 가치가 있다고 생각하시면 유료 버전을 구매하시거나, 또는 위에서 말씀 드린 설치 및 배포 프로젝트 extension이나 공개 설치 플랫폼을 이용하시기 바라겠습니다.

    • 답변으로 표시됨 수선화 2015년 5월 19일 화요일 오전 3:21
    2015년 5월 15일 금요일 오전 9:12
  • 위 3개 질문에 대한 답변도 드립니다.

    1.이미 작성된 실행파일에서 DLL제외시키는 방법은 무엇인지요?

    > 위 답변에서 드린 것처럼 프로그램 구조에 따라서 분리가 가능한 부분을 클래스화 하여 DLL로 빼놓으신 후 응용프로그램 프로젝트에서 import하여 활용하시면 됩니다.

    2.여러개의 DLL프로젝트로 나누어 프로젝트를 만드는 방법은 어떻게 하는지요?

    > 솔루션 내에 Class Library 타입의 프로젝트를 추가해주시면 됩니다.

    3.위의1번과 2번에서 만든 프로젝트파일을 연계링크는 어떻게 하는지요?

    > 솔루션 탐색기 내에서, DLL을 가져다 쓸 응용 프로그램 프로젝트에서 오른쪽 버튼을 누르고 Add를 누르시면 Reference가 있습니다. 그것을 선택하신 후, 좌측 트리에서 솔루션을 눌러보시면, 추가하신 Class Library 타입의 프로젝트가 있을 것입니다. 체크를 하신 후 완료를 누르면 응용 프로그램에서 사용 가능합니다. 한편, 응용 프로그램 코드 내에서는 Imports를 입력하시면 우측에 사용 가능한 라이브러리들의 이름이 리스트될 것입니다. 거기서 새로 추가하신 Class Library의 이름을 선택하시면 코드 내에서 해당 라이브러리의 클래스나 타입을 자유롭게 사용하실 수 있습니다.

    • 답변으로 표시됨 수선화 2015년 5월 19일 화요일 오전 3:21
    2015년 5월 15일 금요일 오전 9:33
  • 상세한 답변 진심으로 감사드립니다^^ 종종 뵙겠습니다^^
    2015년 5월 19일 화요일 오전 3:21