커뮤니티 | 큐티/임베디드/큐토피아 | PODO | SDL | 마이크로윈도우 | 리눅스프로그래밍 | 기타 | 포인트순위 | 최근게시물최근게시물 RSS  
korone.net에 다루었으면 하는것은요?
 
 
 
 
 
531
864
3,878
3,414,961
  현재접속자 : 45 (회원 0)






배너 신청 문의

 
작성일 : 17-01-09 15:20
[QT/Win32] QT GUI DLL화 관련 문의드립니다.
 글쓴이 : bbico
조회 : 658   추천 : 0  
현재 QT를 처음 배우고 있는 사람입니다.

QT GUI를 이용해 여러 OS 환경에서 UI를 통합 운영하고 싶습니다.

VS2015로 QT에 있는 UI와 헤더를 불러와 VS 내에서 컴파일하고 실행은 잘 되었습니다.

그런데, VS에서 해당 프로그램을 라이브러리화해서 다른 곳에서 사용하려고 할 때 어려운 사항이 많습니다.

1) VS에서 dll화할때 다른 os에서 이를 사용하기 위한 팁과,

2) VS로 export할때 slot/signal을 함수포인터로 받아서 사용해야 하는 경우에 대한 팁을 좀 부탁드립니다.

현재 진행상황은, lib화한 프로젝트를 다른 pc상의 vs에서 처리할때, 문제점이 많이 발생했습니다.
sda



devopia 17-01-11 11:38
 
// 여러 OS 환경에서 UI를 통합 운영하고 싶습니다.

여러 OS란 리눅스, 윈도우즈 등을 얘기하는 것인지요? 문맥상 살펴 보면 윈도우즈 계열만을 얘기하는 것 같은데...
구름님 17-01-12 10:19
 
1. 결론적으로 vc로 컴파일해서 동적라이브러리로 만들어서는 타 OS에서 사용이 거.의. 불가능 하겠죠.
dll용 소스를 타 OS에서도 별다른 작업없이 빌드하여 사용하는 것이라면 얘기는 나아집니다.
자세한 설명은 힘들겠고. 응용력을 발휘하여 보세요. 한가지 말씀드릴 수 있는 것은 VS2015 컴파일러와
적용하려는 타 OS에서 사용하게 될 컴파일러의 특징같은 것을 아셔야 합니다. 예를 들면, gnu 컴파일러는 utf8을
지원하고 vc는 그렇지 않으므로, '//한글' 주석이나 QString str = "한글입력입니다."; 같이 멀티바이트 문자를 사용하면서
통일화된 소스를 구현하려는 경우, 구글링해보시면 아시겠지만 이런 경우는 .pro에서 선택중인 툴킷의 컴파일러 종류나
아키텍쳐를 구별할 수 있으니 .pro에서 DEFINES += 등을 적절히 활용하고 .cpp등의 소스에서 전처리구문/매크로로
해결할 수 있습니다.
2. 속사정이야 어찌되었던 겉으로 보이는 로직의 흐름상 signal/slot은 간단하게 생각하면 함수 호출의 개념입니다.
connect(signalObject, SIGNAL(signalFunc()), slotObject, SLOT(onSignalSlot()));
이렇게 연결될 때, signalObject내에서 'emit signalFunc()' 코드는 'slotObject->onSignalSlot()'으로 대체해도 됩니다.
호출 구문 emit signalFunc();를 실행하는 쓰레드가 onSignalSlot() 내부의 코드를
실행하게 될 거라는 것도 당연한 것이고요. 그래서, thread-safe 한 코드 작성에도 약간은 신경쓰셔야 합니다.
또, 하나의 signal에 여럿의 slot이 연결될 경우는 slot함수의 포인터를 list에 넣고 for문을 돌면서 호출하면 됩니다.
     
devopia 17-01-12 11:20
 
// 예를 들면, gnu 컴파일러는 utf8을 지원하고 vc는 그렇지 않으므로

이건 잘못된 정보입니다. GNU를 포함한 오픈소스 진영의 기본 방침은 소스코드의 기본 인코딩 방식을 utf-8(without BOM)으로 사용할 것을 권장하고 있을 뿐 다양한 인코딩 방식을 지원하고 있습니다.

MSVC(한글버전) 또한 CP949를 기본 인코딩 방식으로 지정되어 있을 뿐 utf-8(BOM)을 지원하고 있습니다.

기본 인코딩 변경 방법은 IDE 차원이나 컴파일러 또는 소스코드 지시자 차원에서 다양하게 가능합니다.

예를 들어 g++ 컴파일러의 경우 input-charset 옵션 등에 인코딩 변환을 지시할 수 있습니다.


//  signalObject내에서 'emit signalFunc()' 코드는 'slotObject->onSignalSlot()'으로 대체해도 됩니다.

이 부분은 signal/slot 개념, 즉 OOP와 Event-driven 설계 지침과 상반된 개념으로 이전 절차적 언어의 특성일 뿐 전혀 다른 개념입니다.
          
구름님 17-01-12 11:32
 
네, 얼핏 사용해 보면 분명 VS2015에서도 utf8로 작성이 분명이 될 듯 보입니다.
하지만 직접 해본결과, 방법이 우주 어딘가 있겠지만, 본인은 포기하게 되더군요. 결과는 수많은 경고입니다.
그 방법 찾은 시간이 너무 아까워서..

'속사정이야 어찌되었던 겉으로 보이는 로직의 흐름상 signal/slot은 간단하게 생각하면 함수 호출의 개념입니다'
          
구름님 17-01-12 11:37
 
덧붙이자면, 이제 막 시작하는 이에게는 그에 맞는 눈높이의 설명이면 충분합니다.
          
구름님 17-01-12 11:42
 
멀티바이트 문자 해결방법은 굳이 신경쓰지 않아도 translate를 쓰면 되겠지요.
위에서 '예를 들면' 이라고 말하지 않았습니까
 
 

Total 6,849
번호 제   목 글쓴이 날짜 조회 추천
6849 [QT/Embedded] QT GUI를 사용하면서 라즈베리파이(영상)+Usb Mic… 양가 04-27 43 0
6848 [QT/Embedded] QImage Color map 사용 달리자8 04-26 45 0
6847 [QT/Embedded] 다국어 처리방법 질문입니다 (1) 저기 04-26 61 0
6846 [QT/Win32] 안녕하세요. Qt creator + android opencv sdk 질문있… (1) wddevelope 04-25 72 0
6845 [QT/X11] 라즈베리파이 V2 카메라 QCamera 클래스를 통한 … (4) 양가 04-24 105 0
6844 [QT/Embedded] QT와 터치 스크린 관련 질문입니다. (1) 2tachi 04-20 107 0
6843 [QT/Win32] 장치관리자에서 comport 사용안함으로 했는데 … (1) 재박이a 04-17 125 0
6842 [QT/Win32] QGraphicsItem을 상속받은 도형 클래스에서 mousePr… (1) plays1945 04-15 164 0
6841 [QT/X11] qt에서 ZeroMemory함수가 없나요? (1) fgwet 04-11 215 0
6840 [QT/X11] qt library build 방법 (4) fgwet 04-05 398 0
6839 [QT/X11] widget에 넓이만큼 선을 그었느데 여백이 나옵… (1) 태백 04-05 249 0
6838 [QT/X11] QTextEdit 마우스 cursor 제한 (3) fgwet 04-04 340 0
6837 [QT/Win32] QProcess 여러개 사용하는 질문입니다. (8) lol101 04-04 518 0
6836 [QT/X11] centos에 qwt를 설치해서 사용하려고 하는데 qwt … (1) qtQute 04-04 193 0
6835 [QT/Embedded] QT와 터치 모니터에 대해서 질문 드립니다. (1) 2tachi 04-03 195 0
6834 [QT/Win32] Qt5.2&VC++2012 어플빌드/실행후 '동작이 중지… (3) 깨굴 04-04 236 0
6833 [QT/Win32] QT에서 QPrinter를 이용하여 출력하고 싶은데요. (1) 박멀티 04-03 188 0
6832 [QT/Win32] 배포용 프로그램을 만들려고하는데요 프로그… qtqttq 04-03 149 0
6831 [QT/Embedded] 위젯 / 윈도우 항상 활성화 (2) pojsm 03-31 254 0
6830 [QT/Win32] QPainter를 메인이 아닌 다른 위젯에 붙혔는데 … (3) quteQT 03-30 186 0
6829 [QT/X11] 프로젝트 복사 후 디버깅 실행 시 문제 (3) fgwet 03-29 194 0
6828 [QT/X11] 리눅스 우분투 빌드 환경 다를 경우에 대한 … (1) fgwet 03-24 218 0
6827 [QT/X11] qt 릴리즈 실행파일 생성 질문 fgwet 03-24 214 0
6826 [QT/X11] qt QScrollBar의 context menu를 event로 발생 시킬 수 … 착각은… 03-23 218 0
6825 [QT/Embedded] 리눅스에서 qt없는 환경에서 어떻게 빌드된 … (3) 코딩개… 03-21 259 0
6824 [QT/Win32] 다른 ui파일에서 서로 수정할 수 있나요 ? (4) lol11 03-21 258 0
6823 [QT/X11] 다이얼로그 생성시 그림자 지우는법 (1) fgwet 03-21 240 0
6822 [QT/Embedded] 릴리즈로 설치파일 배포하는 방법아시는분 … (1) 코딩개… 03-17 262 0
6821 [QT/Win32] qt mariaDB 를 사용하려고 하는데 QMYSQL드라이버… (7) 코딩개… 03-16 290 0
6820 [QT/X11] 메모리 누수 관련 건 (2) fgwet 03-15 254 0
 1  2  3  4  5  6  7  8  9  10    


About korone.net | Copyright 2003 korone.net. All rights reserved.