Windows 10 엔터프라이즈 설치 시, 설치할 드라이브를 선택하면 다음과 같은 오류가 발생한다.

Windows cannot be installed to this disk.the selected disk has an MBR partition table.On EFI systems, Windows can be installed to GPT disks.


이에 대한 처리 방법은 다음과 같다.

https://www.quora.com/When-I-tried-to-install-Windows-10-it-shows-Windows-cannot-be-installed-to-this-disk-the-selected-disk-has-an-MBR-partition-table-On-EFI-systems-Windows-can-be-installed-to-GPT-disks-I-have-no-os-on-computer-please-help


  • Start the system and start the installation process.
  • On the screen, which says install now, press SHIFT + F10 or SHIFT + fn +F10 (whichever works).
  • You will see a command prompt window.
  • Now follow this carefully.. (beware of case-sensitive commands)
    • Type diskpart. Press Enter.
    • Type list disk. Press Enter.
    • Type select disk 0. Press Enter.
    • Type clean. Press Enter.
    • Type convert GPT. Press Enter.
    • exit.


by 나숑 2018. 11. 8. 21:02

윈도 서비스 프로그램을 만들어서 웹 서버 프로그램을 실행시키고, 웹 서버 실행을 감지하면 자동으로 웹 브라우저를 실행해주려고 했다. 웹 서버를 실행시키는 것은 금방 끝났는데, 윈도 서비스에서 웹 브라우저 실행이 마음대로 되지 않는다. 실행을 시키더라도 화면에 보이지 않고 프로세스가 실행된 것만 보인다.


2015년에 만들어진 레퍼런스이지만, 가장 깔끔하게 잘 만들어진 예제이다. 이대로 잘 실행까지 되어준다면 좋겠는데, CreateProcessAsUser까지 Exception 발생하지 않고 실행되는데 실행되자마자 죽는 것 같은 기분이 든다.

https://pastebin.com/NEmJupch


이것은 C/C+용 예제이지만 기본 원리를 이해하는데 도움이 된다. 서비스 계정으로 윈도 어플리케이션을 실행시키는데 문제가 있을 수 있다는 것을 처음 알게 된 레퍼런스이다.

http://duzi077.tistory.com/25


#서비스에서 UI 있는 프로그램을 실행시킬 수는 있지만 SYSTEM 권한으로 실행되어 UI가 나오지 않는 문제 발생

윈도우는 User Interface, GDI, 커널 메인 객체를 제공한다.

커널은 안전하지만, UI, GDI는 그렇지 않기때문에 추가적인 보안성을 제공하기 위해 윈도우는 stations와 desktops를 사용한다.

Station은 클립보드, desktop등을 포함하는 프로세스와 관련이 있는 보안 객체이고, Desktop은 Station내에 존재하며 논리화면, 윈도우, 메뉴, 훅과 같은 User Interface를 포함하는 보안객체이다. 

로그온 화면을 관리하는 winlogon desktop, 화면보호기를 담당하는 screen saver desktop, 평상시 윈도우 화면을 보여주는 interactive desktop 3가지로 나눠진다.


사용자가 로그온을 하게 되면 WinSta0\Winlogon 에서 smss.exe(세션메니져), winlogon.exe, msgina.dll 를 통해 일련의 logon 작업을 거쳐 최종적으로 Winst0\default 라는 interactive window station을 생성한다.

그러므로 사용자는 Winsta0의 station에서만이 UI 및 키입력을 받을 수 있다. ( 즉 서비스의 경우는 Service-0x0-3e7$\default)로 생성됨)

Winlogon 과 default desktop은 서로 메시지나 대화상자를 공유할수 없다. 자신의 desktop(winlogon, default)에서만 사용이 가능하다.

하지만 클립보드는 Station에서 관리하기 때문에 다른 desktop에서 사용이 가능하다.


Service의 경우 LocalSystem 계정(administrator 계정보다 상위개념)으로 실행되어 Service-0x0-3e7$\default 와 같은 station을 생성하므로 UI 및 키 입력을 받을수 없다. 그래서 서비스내에서 UI를 가진 프로그램을 실행시키기 위해서는 STARTUPINFO 구조체의 si.lpDesktop = "WinSta0\\Default"; 와 같이 설정하여 실행시켜야 한다. 서비스 프로그램중에서 mtask.exe와 같은 프로그램은 WinSta0을 사용한다. 

반면 서비스 프로그램을 UI 또는 키 입력을 받기 위해서는 CreateService로 실행시 SERVICE_INTERATIVE_PROCESS 옵션을 사용하거나 서비스 등록정보에서 로그인정보에 "데스크와 상호 작용"을 설정하면 서비스도 UI 및 키입력을 받을 수 있다.


결국 Session-> WindowStation -> Desktop와 같은 구조를 이루는데 다른 Session에서는 같은 winsta0\defualt를 가졌더라도 메시지 및 UI가 공유될수 없다. 즉 Session 1에 logon한 사용자가 실행시킨 프로그램에서 표시된 대화상자는 Session 2로 logon 사용자의 화면에는 나타나지 않는다는 이야기다.



# 테스트

STARTUPINFO si;

PROCESS_INFORMATION pi;


si.cb = sizeof(STARTUPINFO); 

si.lpReserved = NULL; 

si.lpTitle = NULL; 

si.lpDesktop = L"WinSta0\\Default"; 

si.dwX = si.dwY = si.dwXSize = si.dwYSize = 0L; 

si.dwFlags = 0;; 

si.wShowWindow = SW_SHOW; 

si.lpReserved2 = NULL; 

si.cbReserved2 = 0; 


CreateProcess( lpwzPath, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);


다음과 같이 테스트를 진행해보았으나 여전히 SYSTEM 권한으로 실행.


Python으로 이렇게 하드코어한 Win32 프로그래밍을 하게 될 줄은 꿈에도 몰랐다.

https://stackoverflow.com/questions/17272572/get-window-handler-from-started-process

https://programtalk.com/python-examples/win32gui.ShowWindow/

https://www.programcreek.com/python/example/104576/win32api.SendMessage

https://www.programcreek.com/python/example/8489/win32process.CreateProcess

https://programtalk.com/python-examples/win32con.STARTF_USESTDHANDLES/

https://programtalk.com/python-examples/win32process.STARTUPINFO/

https://www.programcreek.com/python/example/56721/win32process.STARTUPINFO


이것은 subprocess.Popen으로 실행시킨다음 해당 프로세스의 윈도 핸들을 얻어오는 방법이다. 콜백을 사용하는 것이 마음에 안들고, 실제도 동작되는 형태도 별로지만 이 방법 밖에 없는 듯.

http://ramblings.timgolden.me.uk/2007/09/26/how-do-i-get-the-window-for-a-subprocesspopen-object/


윈도 서비스에서 GUI 앱을 실행 시키려고 하면 계속 (1314, 'SetSystemTime', 'A required privilege is not held by the client.')  이라는 메시지가 떠서 삽질을 오랫동안 했다. 윈도 서비스 권한이 일반 앱을 실행시키는 권한과 달라서 발생하는 문제로 추정된다.

https://mail.python.org/pipermail/python-win32/2009-June/009267.html

https://stackoverflow.com/questions/33816942/why-does-the-createprocessasuser-have-error-1314-in-my-code

https://stackoverflow.com/questions/22615365/using-win32-api-createprocessasuser-in-python

http://python.6.x6.nabble.com/Interacting-with-the-desktop-as-a-service-on-Vista-td1955119.html


굳이 화면에 보이지 않아도 되는 웹 서버는 subprocess.popen으로 쉽게 처리 완료했지만, GUI가 있는 웹 브라우저는 해당 사항이 없다. (윈도 서비스에서 실행하고자 할때만 해당)

https://docs.python.org/2/library/subprocess.html

https://www.programcreek.com/python/example/5376/subprocess.STARTUPINFO

https://docs.python.org/3/library/subprocess.html#subprocess.STARTF_USESHOWWINDOW

https://stackoverflow.com/questions/15899798/subprocess-popen-in-different-console

https://hashcode.co.kr/questions/336/%EC%99%B8%EB%B6%80-%EB%AA%85%EB%A0%B9%EC%96%B4%EB%A5%BC-%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0

by 나숑 2018. 11. 6. 16:17
  • 2020.01.06 18:04 ADDR EDIT/DEL REPLY

    비밀댓글입니다

    • 나숑 2020.01.06 18:20 신고 EDIT/DEL

      제가 생각하기에, 배치 파일은 shell 모드 (코맨드 프롬프트)에서 실행이 가능한 shell script이기 때문에 subprocess.popen으로 실행시킬 수 없을 것 같습니다.

  • 2020.01.06 18:12 ADDR EDIT/DEL REPLY

    비밀댓글입니다

    • 나숑 2020.01.06 18:23 신고 EDIT/DEL

      배치 파일을 실행시키는 대신, 직접 java.exe를 실행 시켜보시기 바랍니다. 물론 그러려면 set으로 임시환경변수를 설정하는 것이 아니라, 고정된 위치에 환경변수를 저장하는 파일을 만들고 서비스 프로그램이 실행될 때 참조하도록 수정해야 할 것입니다.

  • kky3127 2020.01.06 20:00 신고 ADDR EDIT/DEL REPLY

    감사합니다! 참고하고 열심히만들어보겠습니다

Windows 10에서 제공하는 Single-app Kiosk 기능을 이용하려했는데, 반드시 UWP로 만든 앱만 가능하다고 해서 Visual Studio까지 설치하고 UWP 앱을 만들어서 테스트를 해보았다. 그런데, UWP 앱은 윈도 기반의 모든 플랫폼에서 실행이 되어야하기 때문에, PC의 윈도 시스템에 접근하는 것은 물론 외부 명령 실행 조차 안되는 기초적인 문제가 발생했다. 또한 Chrome을 사용하지 못하고 무조건 Edge를 사용해서 Web View를 구현해야하는 것 또한 문제라고 할 수 있다. 몇가지 테스트를 하다가 포기하고 Python으로 Windows Service를 만들어서 처리하기로 결정했다. 

https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/web-view

https://docs.microsoft.com/ko-kr/xamarin/xamarin-forms/user-interface/webview?tabs=vswin


python에서 윈도 메시지 Hooking하기

https://github.com/pywinauto/pywinauto/blob/master/examples/hook_and_listen.py

https://pywinauto.readthedocs.io/en/uia/code/pywinauto.hooks.html

https://docs.microsoft.com/en-us/windows/desktop/winmsg/using-hooks


python에서 외부 명령을 실행 시키는 방법은 다음과 같다.

https://hashcode.co.kr/questions/336/%EC%99%B8%EB%B6%80-%EB%AA%85%EB%A0%B9%EC%96%B4%EB%A5%BC-%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0

https://stackoverflow.com/questions/1685157/specify-working-directory-for-popen

subprocess.Popen takes a cwd argument to set the Current Working Directory; you'll also want to escape your backslashes ('d:\\test\\local'), or use r'd:\test\local'so that the backslashes aren't interpreted as escape sequences by Python. The way you have it written, the \t part will be translated to a tab.

So, your new line should look like:

subprocess.Popen(r'c:\mytool\tool.exe', cwd=r'd:\test\local')


1. 크롬을 키오스크 모드로 실행한다. 크롬 실행시에 arguments로 URL과 --kiosk 옵션을 실행하도록 한다.

http://blog.daum.net/_blog/BlogTypeView.do?blogid=0NpvP&articleno=353&categoryId=0&regdt=20150708161357

"C:\Program Files\Google\Chrome\Application\chrome.exe" http://www.daum.net -kiosk


https://stackoverflow.com/questions/22927536/how-to-open-google-chrome-using-python-and-pass-in-arguments/22927616

import os
os.system('taskkill /im chrome.exe') 

os.system('start chrome "https://www.youtube.com/feed/music" --kiosk')


Python에서 WebDriver나 ChromeDriver로 크롬을 키오스크 모드로 실행하는 방법이 있기는 하지만 위 방법하고 뭔가 차이가 있다. 온갖 옵션을 찾아봤는데 만족스러운 결과를 만들지 못한다.

https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.chrome.options

https://sites.google.com/a/chromium.org/chromedriver/home

https://www.ericdlarson.com/misc/chrome_command_line_flags.html


2. 크롬 키오스크 모드로 실행을 하면, 터치 스크린의 경우 멀티 터치가 되어서 줌인/줌아웃이 실행된다. 이를 막아 주어야 한다.

윈도 메시지 중에 키보드와 마우스 이벤트 메시지를 무력화 시켜도 크롬 내부의 버튼 클릭이나 제스쳐 등은 동작한다. 아마도 윈도 표준 메시지 방식이 아닌 예외적인 구현을 한 것 같다.

https://stackoverflow.com/questions/22999829/disable-chrome-pinch-zoom-for-use-in-kiosk

We've had a similar problem, it manifests as the browser zooming but javascript receiving no touch event (or sometimes just a single point before zooming starts).

We've found these possible (but possibly not long-term) solutions:

1. Disable the pinch / swipe features when using kiosk mode

If these command-line settings remain in Chrome, you can do the following:

chrome.exe --kiosk --incognito --disable-pinch --overscroll-history-navigation=0
  • --disable-pinch - disables the pinch-to-zoom functionality
  • --overscroll-history-navigation=0 - disables the swipe-to-navigate functionality


크롬 자체의 좌우 제스쳐는 막는 방법이 없어서 최초에 로딩 페이지만 존재해서 좌우 제스쳐 자체가 먹지 않도록 하는 것이 정답인 듯하다.

https://productforums.google.com/forum/#!topic/chrome/PaMriZC-Kuo

https://social.msdn.microsoft.com/Forums/en-US/b1767764-dc29-4dbc-bddb-1f73f154d809/getting-wmtouch-messages-in-callwndproc?forum=tabletandtouch

https://docs.microsoft.com/en-us/windows/desktop/wintouch/getting-started-with-multi-touch-gestures


3.  마지막으로 윈도 10의 시스템 제스쳐를 막아야 한다. 이것은 Python 프로그램으로 통제하기가 쉽지 않은 것 같아서 그냥 설정을 변경해버렸다.

https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/how-to-disable-touchscreen-gestures-on-windows-10/3ff7654e-c90e-41d7-b2d1-1dfbba0812fd?auth=1

not possible on windows 10 home editions, this is the price you pay for a 'free' operating system !

the official method to disable edge swipes ( which we use for our epos application ) is as follows, although it only works on windows 10 pro and related operating systems. i found it works on windows 10 iot.

gpedit.msc
Local Computer Policy
 Computer Configuration
  Administrative templates
   Windows Components
    EdgeUI
     Allow edge swipe = Disabled

Reboot


동료들이 크롬보다 chromium이 가볍고 더 좋다고 해서 chromium을 사용해봤다.

https://chromium.woolyss.com/download/

https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md


chromium은 KIOSK 모드로 실행할 때, 계속 상단바에 뭐가 뜬다. 관리자 모드로 콘솔을 실행해서 3개의 환경 설정을 해주면 해결 된다.

https://stackoverflow.com/questions/21276763/google-api-keys-missing-warning-message-when-using-chromium-portable

I needed to get rid of this message too, so I just took what mormegil suggested but applied it to a batch script that launches Chromium.

My below sample batch file will launch Chromium into KIOSK mode but you can just remove the --kiosk if you don't need that.

set GOOGLE_API_KEY="no"
set GOOGLE_DEFAULT_CLIENT_ID="no"
set GOOGLE_DEFAULT_CLIENT_SECRET="no"

"C:\chromium\ChromiumPortable_49.0.2593.0.paf\App\Chromium\32\chrome.exe" --kiosk

I did it this way since I don't want to set those environment variables to affect other instances of Chromium but rather just the one that I'm launching with my batch script.



by 나숑 2018. 11. 2. 17:12

윈도 단말기에서 단일 앱만 실행되도록 하기 위해서 Windows 10에서 제공하는 Single-app Kiosk 기능을 이용해보기로 했다. 이를 위해서는 UWP 앱이 필요하다고 해서 오랜만에 비주얼 스튜디오를 설치했다.

https://docs.microsoft.com/ko-kr/windows/configuration/kiosk-single-app

https://docs.microsoft.com/en-us/windows/configuration/kiosk-single-app


Windows 10, 버전 1703에 "Windows 구성 디자이너"라는 것이 추가되었는데 별도로 만든 UWP 앱을 Single-app Kiosk로 동작되게 하려면 반드시 이 프로그램이 필요하다.

https://docs.microsoft.com/ko-kr/windows/whats-new/whats-new-windows-10-version-1703


예전에 만들었던 게임들을 마이크로소프트 앱 스토어에서 판매를 하려고 보니, UWP 앱이어야만 한다는데 기존에 만들어진 소스 코드를 그대로 사용하기는 힘들 것으로 보인다. 다행히 이번 프로젝트는 간단한 런처를 새로 만드는 것이기 때문에 문제가 없다. 원래는 C++로 개발할 생각이었는데, 이번 기회에 생전 처음으로 C#를 써볼까 한다.

https://docs.microsoft.com/ko-kr/windows/uwp/get-started/universal-application-platform-guide


비주얼 스튜디오에서 간단한 샘플 프로젝트를 만들어서 실행하려 했더니 권한이 필요하다고 나오면서 실행이 안된다. 안드로이드나 아이폰처럼 이제는 PC용 윈도우도 개발자 모드가 따로 있는 것 같다. 그래서 세팅에서 "Developer mode"로 변경하고 실행하니, 문제 없이 실행된다.

https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/


C++이나 C#이외에도 Javascript를 이용하여 PWA를 만들수 있다고도 하는데, 이 경우에는 C++이나 C#을 쓰는 것이 훨씬 쉽고 빠른 방법이다.

https://docs.microsoft.com/en-us/microsoft-edge/progressive-web-apps

https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/?hl=ko

https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb


이 외에도 다양한 키오스크 앱을 만드는 방법이 있지만, 윈도우에서 제공하는 기능을 사용하는 것이 가장 좋을 것 같아서 제외했다.

https://support.google.com/chrome/a/answer/6137027?hl=ko


by 나숑 2018. 11. 1. 17:46

1. 스팀 계정으로 STEAMWORKS에 로그인한다.

https://partner.steamgames.com/home


2. "Steamworks SDK v1.39"을 다운받는다

by 나숑 2017. 1. 21. 23:52

첫번째 문제 : "cl : 명령줄 error D8016: '/ZI'과(와) '/Gy-' 명령줄 옵션이 호환되지 않습니다."

http://r2cuerdame.blogspot.kr/2016/12/cl-error-d8016-zi-gy.html

속성 페이지 -> C/C++ -> 코드 생성 -> 함수수준 링크 사용 ->  /Gy


두번째 문제 : "포함 파일을 열 수 없습니다. 'dxerr9.h': No such file or directory"


DirectX 9 예제 프로젝트 빌드하는 방법

http://www.sysnet.pe.kr/2/0/1723

DXSDK_Jun10.exe 설치 시 "Error Code: S1023" 오류 해결하는 방법

http://www.sysnet.pe.kr/2/0/1195


아쉽게도 빌드가 안됩니다. d3dx9.h 헤더 파일이 없다고 나옵니다.

error C1083: Cannot open include file: 'd3dx9.h': No such file or directory c:\...\d3d\d3dimagesample\d3dimagesample\d3dscene\main.cpp


어쩔 수 없죠. ^^ DirectX SDK를 다운로드 받아 설치했습니다.

DirectX Software Development Kit 
; http://www.microsoft.com/en-us/download/details.aspx?id=6812


참고로, 현재 대부분의 개발자 컴퓨터에서는 DirectX SDK (June 2010)을 설치하면 S1023 오류가 발생할 것입니다. 이에 대해서는 다음의 글을 보시고 해결하면 됩니다.

DXSDK_Jun10.exe 설치 시 "Error Code: S1023" 오류 해결하는 방법
; http://www.sysnet.pe.kr/2/0/1195


물론 이렇게 해도 빌드가 안됩니다. 왜냐하면 D3DScene C++ 프로젝트의 include/lib 폴더 경로를 프로젝트 설정에서 DirectX SDK 설치 경로를 포함해 주어야 하기 때문입니다.

[include 경로]
d3d_compile_1.png 

[x86 라이브러리 경로]
d3d_compile_2.png 

여기까지 맞춰주면 D3DImageSample 솔루션 파일이 전체적으로 컴파일이 잘 됩니다

-----------------------------------------------------------------------------------------------------------------------------

[그래픽스] Rendering DX 9 :: 기본 윈도우 생성

http://vallista.tistory.com/entry/DX-9-%EA%B8%B0%EB%B3%B8-%EC%9C%88%EB%8F%84%EC%9A%B0-%EC%83%9D%EC%84%B1


http://tt91.tistory.com/44

최신버전(DirectX 11.1 / DirectX 12)의 SDK는 요즘 윈도우즈 SDK에 포함되어 나온다고 한다.

(물론 구버전의 라이브러리와 헤더도 포함되어 있다)

https://developer.microsoft.com/ko-kr/windows/downloads/windows-10-sdk


세번째 문제 : 포함 파일을 열 수 없습니다. 'dxerr9.h': No such file or directory


It seems your program was written using an older version of DirectX SDK. The 'dxerr9.h' is present at least in "Microsoft DirectX 9.0 SDK (December 2004)", but is absent at least in "Microsoft DirectX SDK (August 2009)".


* DXTRACE_ERR 매크로

http://telnet.or.kr/directx/intro/program/debugging/dxtrace_err.htm


#include <windows.h>

#include <mmsystem.h>

//#include <dxerr9.h>

//#include <dsound.h>

long __cdecl DXTRACE_ERR(char *, long) {

return long;

}

dxerr9.h 파일을 주석 처리하면, DXTRACE_ERR 매크로 정의부가 없기 때문에 DXTRACE_ERR를 사용한 모든 곳에서 에러가 난다. 그래서 임의의 함수를 하나 만들어서 대체하게 했다.


네번째 문제 : C2280: attempting to reference a deleted function (union, struct, copy constructor)


http://stackoverflow.com/questions/33921710/c2280-attempting-to-reference-a-deleted-function-union-struct-copy-construct

The relevant rule here for the union is C++14 [class.union]/1:

If any non-static data member of a union has a non-trivial default constructor , copy constructor, move constructor, copy assignment operator, move assignment operator, or destructor, the corresponding member function of the union must be user-provided or it will be implicitly deleted for the union.


C++ 14의 문법적인 문제 때문에 union을 사용할 때에도 생성자가 반드시 있어야 하는 것으로 판단된다.

union CUSTOMVERTEX_XYZ

{

struct 

{

D3DXVECTOR3 v;

};

struct 

{

FLOAT x,y,z;

};

CUSTOMVERTEX_XYZ() {}

static const DWORD FVF;

};

union CUSTOMVERTEX_XYZDIFFUSE

{

struct 

{

D3DXVECTOR3 v;

DWORD Color;

};

struct 

{

FLOAT x,y,z;

DWORD Color;

};

CUSTOMVERTEX_XYZDIFFUSE() {}

static const DWORD FVF;

};


다섯번째 문제 : lnk1104: cannot open 'LIBC.lib' LINK


http://stackoverflow.com/questions/15965716/lnk1104-cannot-open-libc-lib-link

If your application may multiple static link same library. you can go right click project->properties-> Linker -> Input -> Ignore Specific Library and add libc.lib


"특정 기본 라이브러리 무시" 항목에 다음을 추가하여 해결

strmbasd.lib;libcp.lib;dxerr9.lib;LIBC.lib


여섯번째 문제 : fatal error LNK1281: SAFESEH 이미지를 생성할 수 없습니다.


https://msdn.microsoft.com/ko-kr/library/9a89h429.aspx

/SAFESEH:NO를 지정하면 링커에서는 모든 모듈이 안전한 예외 처리 기능과 호환되더라도 안전한 예외 처리기 테이블이 있는 이미지를 생성하지 않습니다.


링커-명령줄에 "추가 옵션"으로 /SAFESEH:NO를 추가하여 해결


일곱번째 문제 : error LNK2001: "public: __thiscall std::ios_base::Init::Init(void)"


http://stackoverflow.com/questions/36081425/nuget-version-of-gtest-not-linking-in-vs2015


프로젝트 속성의 "일반" 메뉴의 "플랫폼 도구 집합"을 "Visual Studio 2015 (v140)"에서 "Visual Studio 2015 - Windows XP (v140_xp)"로 변경하여 해결


...................................................................


드디어 빌드 성공!

10년도 넘은 게임 프로그램을 빌드해서 실행하였다.

아직 몇가지 이슈를 더 해결해야 하지만, 감격적이다~




by 나숑 2017. 1. 21. 09:54

 

Projects_20151211.zip

 

by 나숑 2015. 12. 11. 16:56

 

리팩토링_및_디자인패턴_개요_20140928.pptx

 

REPECTORING.zip

 

by 나숑 2015. 12. 2. 17:22

삼성SDS 멀티캠퍼스

강의시간 : 21시간

강의교재 : 리팩토링 - 코드 품질을 개선하는 객체지향 사고법 (마틴 파울러) + 자체 교재

 

 

RentalMovie.zip

 

 

<이전 강의 자료 링크>

http://nashorn.tistory.com/entry/C-%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81-%EC%98%88%EC%A0%9C

 

http://nashorn.tistory.com/entry/C-리펙토링-예제

 

by 나숑 2015. 10. 2. 16:28

한국기술교육대학

강의시간 : 62시간

강의교재 : VISUAL C++ 2008 MFC 윈도우 프로그래밍 (프리렉)


Projects_20150904.zip


by 나숑 2015. 9. 16. 09:45
| 1 2 3 4 |