GPC64.DLL 만들기

개발 환경

다각형 연산 도구 General Polygon Clipper : version 2.32, 2014

컴파일에 사용한 wrapper는 VB.NET wrapperTadej Basa

컴파일러 : Visual Studio 2019

Visual Studio Project 속성 설정하기

fscanf와 같은 함수는 보안에 문제가 있다는 경고를 띄운다. 이를 없애기 위해서 _CRT_SECURE_NO_WARNINGS를 ‘전처리기’에 추가하였다. 자세한 설명은 아래에 있다.

gpc.c가 그냥 C언어로 되어 있기에 “미리 컴파일된 헤더”를 사용하지 않았다. 그래서 아래와 같이 설정하였다. “pch.h”를 삭제한다.


Preprocessor – GPC64_EXPORTS

gpc.h에 #define을 정리하다

전처리기(preprocessor)에 “GPC64_EXPORTS”를 안 하면, error c2491 가 발생한다. 주의해야 한다.

Preprocessor : _CRT_SECURE_NO_WARNINGS

fscanf 와 같은 함수들이 보안 관련 경고를 발생시킨다. 이를 방지하고자 이 옵션을 걸었다.

참고 : Remove secure warnings

미리 컴파일된 헤더 Precompiled Header

이전에 개발된 gpc(gpc.c, gpc.h)가 현재 개발 환경에 맞지 않아서, 미리 컴파일된 헤더는 사용하지 않았다. 사용하면 에러가 많이 뜬다.

컴파일하는 과정에서 생겼던 오류와 검색 내용들

DLL 만들기 32비트/64비트

기존의 vbwrapper.sln을 이용했더니, 아무리 설정을 바꾸어도 에러가 발생하였다. 새로 DLL 프로젝트를 만든 다음, gpc.h와 gpc.c를 추가하고 위와 같이 컴파일 옵션을 설정하니, 제대로 만들어졌다.

프로젝트 설정 화면(pdf)


교훈

때로는 새로 시작하는 것이 나을 때가 있다. 오래된 비주얼 스튜디오 파일을 쓰기보다 새로 만들어서 쓰자.

DLL 만들기 32비트/64비트

https://m.blog.naver.com/PostView.nhn?blogId=sogangori&logNo=220587896152&proxyReferer=https%3A%2F%2Fwww.google.com%2F

자체 동적 연결 라이브러리 만들기 및 사용(C++)

64비트 컴퓨터에 설치된 Visual Studio 2015로 32비트용 실행파일 컴파일하기

https://stackoverflow.com/questions/50164687/how-to-compile-a-64-bit-dll-written-in-c

fscanf error

https://bymakers.tistory.com/6

Compile Error

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
경고 기본 참조 “gpc, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL”이(가) 현재 대상 프레임워크에서 확인할 수 없는 프레임워크 어셈블리 “System.Runtime.Serialization.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”에 간접적으로 종속되어 있기 때문에 확인할 수 없습니다. “.NETFramework,Version=v4.0”. 이 문제를 해결하려면 참조 “gpc, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL”을(를) 제거하거나 응용 프로그램의 대상을 “System.Runtime.Serialization.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”이(가) 포함된 프레임워크 버전으로 변경하세요. wraptest

[server]WebDAVNav server 설치

[배경]

iDevice에서 백업방법으로 WebDAV를 이용한다. 나는 Notability의 내용을 백업하고 싶다.

iCloud는 5GB의 용량 제한이 있으나, 개인 서버는 그런 제한이 없다. 물론 제한없도록 하드웨어를 구입해야 한다.

[문제]

  • macOS Server 5.7.1로 바뀌면서 WebDAV는 사라졌다.
  • Prepare for changes to macOS Server 5.7.1 모든 문제는 여기서부터 출발한다. 아마도 애플은 모두 iCloud로 옮기고 싶어서 개인 서버에서 WebDAV를 손쉽게 이용하지 못하게 하는 것이리라.
  • macOS Mojave가 되면서 wfsctl(WebDAV File Sharing control utility)로도 WebDAV를 실행시킬 수 없을 뿐만 아니라, 웹서버(apache)도 실행시킬 수 없게 되었다.

[해법]

모하비에 WebDAV 서비스를 하려면, Apache의 설정을 손봐야 한다. 그럴 시간이 없다.

앱스토어에서 WebDAVNav v2.6.4를 내려받아 설치하였다.

설정은 다음과 같이 하였다.

  • Port : 일반적인 웹서버인 80을 사용하지 않고 다른 값을 썼다.
  • Start server on launch : checked
  • username : **** (서버 등록 사용자가 아닌 별도의 이름을 입력할 수 있다.)
  • password : **** (서버등록 암호가 아닌 별도의 암호를 설정할 수 있다.)
  • Use Digest Authentication : checked
  • Use Https : checked
  • Create and use self-signed certificate : checked
  • Extra shares : 설정하지 않음. 만약 추가로 공유하고자 하면, {공유 이름}과 {공유 폴더}를 설정하면 된다.

접속 방법

  • https://URL:Port
  • https://URL:Port/{공유 이름}/

[참고]

macOS Server WebDAV Replacement: WebDAVNav Server

[windows] diskpart를 이용해서 부팅가능한 HDD 만들기

(1행)diskpart는 디스크의 파티션을 관리하는 명령어로서, 도스쉘에서 입력하면 실행된다.

(2행) list volume을 통해서 현재 컴퓨터에 연결된 모든 디스크의 파티션 상태를 보여준다.

(3행)여러 드라이브 중에서 특정 드라이브(여기서는 e드라이브)를 선택한다.

(4행)선택한 드라이브의 파티션에 대한 상세한 정보를 보여준다. 파티션 번호, 종류, 숨김, 활성, 오프셋 등을 알려준다. 여기서 ‘활성’이 ‘예’라고 하면, 부팅이 가능하다는 말이다.

(5행) active명령어는 현재 선택한 드라이브를 활성화(즉 부팅가능)시킨다는 말이다. 활성화된 드라이브를 비활성화시키는 것은 inactive라는 명령어이다.

(6행) 활성화(혹은 비활성화) 여부를 다시 확인하는 차원에서 드라이브의 상세 정보를 본다.

[참고문헌]

http://blog.naver.com/PostView.nhn?blogId=linu11&logNo=220644368116

[mac]macOS Server on Mojave

180926

macOS Server 5.6.3을 macOS 10.13(일명 하이 시에라)에 설치했다.

최근 macOS 10.14(일명 모하비)를 설치했다. 서버 앱이 작동하지 않는다. 

180929

macOS Server 5.7.1이 나왔다. 서버 앱이 작동하였다.

그런데, 웹서버는 빠졌다.

https://support.apple.com/en-us/HT208312

181001

모하비 안에는 이미 아파치가 설치되어 있다.

https://www.dyclassroom.com/howto-mac/how-to-install-apache-mysql-php-on-macos-mojave-10-14

마이그레이션(migration)

A Migration Guide for macOS Server Users를 따라 해서 모하비에 맞게 이주했다.

[교훈]

  1. 서버로 사용하는 컴퓨터의 운영체제와 관련 소프트웨어를 함부로 업데이트하지 말자
  2. 업데이트하기 전에, 파급 효과를 미리 확인하자
  3. 업데이트를 제공하는 곳의 공식적인 자료를 먼저 읽자

학과 서버 정리(180913)

사용 환경

HW : Mac mini Server (mid 2011)

OS : macOS High Sierra (10.13)

Server : macOS Server 5.4 (Apache 2.0)

  1. 일반적인 Apache의 설정 위치가 다름 (/Library/Server/web/config/apache2/)
  2. 애플의 공식 지원 (https://help.apple.com/serverapp/mac/5.6/#/ )
  3. 서버 기동과 정지 방법이 완전히 다름

[start]

[stop]

[status]

[web settings]

서버용 프로그램들

PHP : version 7.1.16

MySQL : 5.0.12

CMS 1: XE 1.9.8

  1. PHP 7.* 지원

CMS 2 : TextCube 1.10.10

  1. PHP 7.* 지원

CMS 3 : WordPress 4.9.8

  1. PHP 7.* 지원