2021년 11월 21일 일요일

델파이 11 버전으로 만들어진 윈도우32비트 실행파일을 윈도우XP에서 실행하기.

아직도 각종 기기를 제어하는 시스템에는 윈도우XP를 상당 사용하고 있습니다. (시스템 프로그램에 굳이 비용과 아이센스측면에서 윈도우7 이상을 사용할 이유는 없는 경우가 많습니다) 

iMac 에서 윈도우프로그램을 델파이로 만들어 실행파일을 돌려볼라치면 부트캠프를 사용하거나, 파라랠즈 같은 가상머신을 돌려서하는 방법이 있습니다. 

그런데 가상머신의 용량이 너무커서 부담이되어 패러럴즈에서 윈도우 XP를 설치하여 실험하면 좋겠다고 생각되어 XP를 설치하였습니다.

윈도우 10은 Lite버전을 설치한 후 델파이11 Alexandria 을 설치하였고,
윈도우 XP는 OS만 설치한후 용량입니다.

델파이11버전으로 윈32실행파일을 생성하여 XP에서 실행하려고 하면 "올바른 Win32응용 프로그램이 아닙니다"(아래)라는 경고창을 볼 수 있습니다.

구굴링해본 결과 델파이 11버전의 업그레이드버전에서는 문제가 해결되었다고 하네요.

업그레이드 이전 버전에서는 (수정. 2021.11 업그레이드 이후에도 아래와 같이 바꾸어주어야함)

 PE Header  부분을 6.0 에서 5.1로 수정하면 되더군요.



또는 프로젝트 소스에서 
program notepad_clone;
{$SETPEOSVERSION 5.1}     // 5.1 로 변경
{$SETPESUBSYSVERSION 5.1} // 5.1 로 변경 

만약 쓰레드를 사용하는 경우에는  Delphi 11 Windows XP compatibility tweak 을 참조하세요.

#delphi11 #windowsxp #windows32 #올바른 Win32 응용 프로그램 #delphi







2021년 11월 15일 월요일

iMac Big Sur 에서 윈도우98 설치하여 Delphi6.0을 설치하여 실행

 iMac Big Sur 에서 윈도우98 설치하여 Delphi6.0을 설치하여 실행하였습니다.

DOSBox-X 를 방문하시면 OS X (iMAC등)에서 윈도우98SE 설치방법을 알 수 있습니다.

참고로 위 홈피에서 언급하지 않은 사항만 알려드립니다.

DosBoox-X를 처음 실행하면 디렉토리를 지정하라고 합니다. 저는 문서폴더에 폴더를 하나만들어 지정하였습니다.(나중에 이미지 생성시 이곳에 생성되고, 델파이 .ISO 파일도 이곳에 둡니다)

도스박스 윈도우98 환경은 

/Users/jglee/Library/Preferences/DOSBox-X 0.83.19 Preferences

에 있으니 위 홈피에 나온 방법으로 수정하시면 됩니다.(반드시 수정하셔야  설치에 실수가 없습니다. 진짜 win98Se 정도의 속도 밖에 안나옴니다. 나중에 cpu 설정을 바꾸면 되겠지요)

DosBox-X를 압축해제 한 후 iMac의 Application 폴더로 복사/붙여넣기하신후 런처에서 실행하시면 됩니다.(런처에서 실행시 Preferences 설정환경으로 실행됩니다. Windows98SE 설치 참조)

DosBox-X 에서

IMGMAKE hdd.img -t hd_2gig
IMGMOUNT C hdd.img
IMGMOUNT D Win98.iso
IMGMOUNT A -bootcd D
BOOT A:

윈도우98 설치중 DosBox-X가 종료되면(실제 PC에서는 종료됩니다) 

아래와 같이 지정하고 재부팅하면 관련드라이버를 자동으로 잡습니다. (2회)

IMGMOUNT C hdd.img
IMGMOUNT D Win98.iso
BOOT C:

델파이6.0을 설치하려면 Borland Delphi 6.0 에서 다운 받은 후 압축해제 후 위에서 언급한 디렉토리에 저장하시면 됩니다.

IMGMOUNT C hdd.img
IMGMOUNT D Delphi60.iso
BOOT C:

2021년 11월 11일 목요일

MacOS 에서 Symbolic Link 만들기

MacOS 에서 Symbolic Link 만들기

Terminal 에서 "ln -s " command 를 사용하면 되지만,

Finder 에서 사용하려면..


(1) 아래 GitHub 사이트에서 SymLinker 앱을 다운 받아서 설치하고 수행시킨다.

다운로드

(2) Finder 에서 Services -> Make Symbolic Link 를 선택한다.


Xcode 13.1에서 iOS 10.3 App 생성시 'UIScene' is only available in iOS 13.0 or newer 에러 대처

 모처럼만에 XCode에 iPAD2 를 연결하여 빈화면을 생성하여 실행하려 하였더니.

'UIScene' is only available in iOS 13.0 or newer

가 발생되어 당황하였습니다. 검색결과.. 

SceneDelegate.swift 에서


@available(iOS 13.0, *) // (1)이것을 추가

class SceneDelegate: UIResponder, UIWindowSceneDelegate {



AppDelegate.swift 에서


class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow? // (2)이것을 추가


@available(iOS 13.0, *) // (3)이것을 추가

    func application(_ application: UIApplication, configurationForConnecting 


@available(iOS 13.0, *) // (4)이것을 추가

    func application(_ application: UIApplication,


해주면 되는군요.





델파이 12.1이냐 11.3이냐?

 델파이가 12.1이 나왔습니다. 혹시 11.3버전의 커뮤니티버전이 필요하시는분이 있을 수 있을 것 같아 https://altd.embarcadero.com/.../RADStudio_11_3_esd_28... 와 이것 찾느랴 엄청고생함.