2010-06-03 4 views
2

구성 요소의 가용성을 확인하고 필요한 경우 Windows XP 이상을 실행하는 컴퓨터에 기본 앱을 다운로드해야합니다. 어떤 프레임 워크를 미리 설치하지 않고도 실행할 수있는 응용 프로그램을 만들려면 어떤 언어 (무료 또는 VS 2010)를 사용해야합니까?추가 소프트웨어없이 Windows XP에서 실행되는 응용 프로그램을 만들려면 어떤 프로그래밍 언어/컴파일러/라이브러리를 사용해야합니까?

+3

오류 .. MinGW 및 Windows API ??? –

+0

마치 자신이 만든 응용 프로그램을 만들지 않고 설치 프로젝트를 만들어야하는 것처럼 들립니다. –

+0

@PP. 좋아 보여. 왜 코멘트 대신 대답하지 않습니까? – Soumya

답변

2

정교하게 말씀해 주시겠습니까? 정적 라이브러리에 의해, exe와 함께 있어야 dll을 의미합니까? 또는 windows/system32에서 사용 가능한 dll을 참조합니까? 또한이 방법으로 컴파일 된 프로그램에는 'Visual C++ Redistributable'이 필요합니까?

정적 라이브러리에 대한 C++ 실행 가능 링크의 경우 링커는 라이브러리의 개체 코드를 EXE와 동일한 파일에 포함시킵니다. 결과는 단일 *.exe 파일이며 라이브러리는 별도 *.dll으로 배송 할 필요가 없습니다.

windows/system32의 DLL은 일반적으로 O/S 파일입니다. 그들은 O/S 특정입니다. 이러한 파일을 배포하거나 재배포 할 수는 없으며 배포 할 수는 없습니다 (Microsoft에서 제공). EXE (예 : 정적으로 링크 된 C 런타임 라이브러리)는 이러한 DLL에서 내 보낸 일부 기능에 의존합니다. 이러한 O/S DLL은 역방향 호환이 가능하므로 XP에있는 O/S API를 대상으로하면 코드가 Vista에서도 실행됩니다.

'Visual C++ 재배포 가능 파일'은 DLL 파일 이름이 msvcrt80.dll 인 "Visual C 런타임 라이브러리"를 의미하는 것으로 추측합니다. 이것은 첫 번째 단락에서 이야기 한 것입니다. C 런타임 라이브러리에 정적으로 링크하기위한 빌드 옵션 (프로젝트/속성에서 사용 가능)을 선택하면 필요한 코드가 정적으로 EXE에 링크되고, 이 DLL에 런타임 링크가 필요하지 않습니다.

+0

VC++ 재배포 가능 파일은 실제로 CRT뿐만 아니라 적어도 세 개의 (비슷한 이름의) DLL로 구성됩니다. 완전을 위해서. – OregonGhost

+0

@OregonGhost - 다른 두 DLL은 무엇입니까? MFC 및 ATL? – ChrisW

+0

이것은 완벽하게 보입니다. – Soumya

1

MFC가 포함 된 Visual C++ 6. 최신 버전의 Visual C++를 사용하는 경우 Windows XP 대상에 라이브러리가 필요합니다.

편집 : CRT 및 MFC 라이브러리가 이후 버전에서도 정적으로 링크 될 수 있다는 의견이 지적되었습니다. 맞았고 잊었다.

+0

CRT를 정적으로 연결하더라도 라이브러리가 필요합니까? – OregonGhost

+0

나는 그것이 사실이라고 생각하지 않는다. VS 2008 (Express)은/MT 컴파일러 옵션을 잘 지원하며 정적 라이브러리 나 공유 DLL에서 MFC를 사용할 수 있도록 지원합니다. – ChrisW

+0

@ChrisW, 좀 자세히 설명해 주시겠습니까? 정적 라이브러리에 의해, exe와 함께 있어야 dll을 의미합니까? 또는 windows/system32에서 사용 가능한 dll을 참조합니까? 또한이 방법으로 컴파일 된 프로그램에는 'Visual C++ Redistributable'이 필요합니까? – Soumya

0

특별히 설계된 것은 아니지만 설치 부트 스트 래퍼에는 InnoSetup을 사용하는 것이 좋습니다. 라이브러리가 필요없고 일반적인 설정 요구 사항에 대한 기능을 제공하며이를 확장하는 PascalScript가 있습니다. 사용 가능한 많은 플러그인이 있으며 사용자 정의 스크립트 (기본적으로 Delphi와 유사)를 사용하여 수행 할 수있는 모든 작업을 수행 할 수 있습니다. PascalScript는 API 함수를 가져올 수 있으므로 실제로 무엇이든 할 수 있습니다. InnoCallback을 사용하면 API에서 콜백을 얻을 수도 있습니다. MSI API를 사용하여 많은 MSI 설정을 단일 패키지로 부트 스트랩하는 데 사용했습니다.

다운로드하면 좋은 편집기와 InnoSetup 전처리기를 포함하는 QuickStart Pack을 받으십시오.

+0

설치 프로그램을 작성하는 것처럼 질문이 소리가 나지만, 나는 아닙니다. 하지만 어쨌든 포인터 주셔서 감사합니다. 나중에 프로젝트에서 유용 할 수 있습니다. – Soumya

+0

그런 경우 사용할 수있는 델파이가있는 경우 델파이는이를위한 범용 솔루션이며 라이브러리가 필요하지 않습니다 (InnoSetup은 Delphi로 작성되었습니다). 그것은 특별히 저렴하지는 않습니다 :) – OregonGhost

+0

나는 그것을 이미 조사했고, 현재로서는 델파이 라이센스를 가질 여력이 없습니다. – Soumya

관련 문제