현재 주요 프로젝트에서 사용하고 싶은 일부 암호를 테스트하기 위해 실행하고 싶은 약간의 샘플 프로젝트로 인해 잠시 멈춰 있습니다.Qt의 SYSTEMTIME
기본적으로 최신 Qt Creator를 사용하고 있으며 간단한 창 대화 상자를 만들었습니다. 또한 PBKDF2 구현을 테스트하고 싶습니다. CkCrypt2
그래서 라이브러리의 X64 버전을 다운로드하고 프로젝트 폴더에 추가했습니다. 그때 외부 라이브러리를 사용하여 내 Qt는 프로젝트 말했다, 최종 .PRO 파일은 다음과 같습니다 :
#-------------------------------------------------
#
# Project created by QtCreator 2013-06-09T18:09:44
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = crypt2test
TEMPLATE = app
SOURCES += main.cpp\
m
ainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/libs/ -lChilkatDbgDll_x64
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/libs/ -lChilkatDbgDll_x64d
else:unix: LIBS += -L$$PWD/libs/ -lChilkatDbgDll_x64
INCLUDEPATH += $$PWD/include
DEPENDPATH += $$PWD/include
나는 성공적으로 라이브러리를로드 할 수 있지만 응용 프로그램을 시작할 수 없습니다.
내 mainwindow.cpp은 다음과 같습니다
이#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "CkCrypt2.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
CkCrypt2 crypt;
bool success;
success = crypt.UnlockComponent("Just some random text ");
if (!success)
{
qDebug() << "Not successfully unlocking the library";
}
}
MainWindow::~MainWindow()
{
delete ui;
}
내가 컴파일러에서 얻을 오류 메시지는 다음과 같습니다
c:\qt\qt5.0.2\tools\qtcreator\bin\crypt2test\include\CkString.h:127: error: C2061: syntax error : identifier 'SYSTEMTIME'
c:\qt\qt5.0.2\tools\qtcreator\bin\crypt2test\include\CkString.h:129: error: C2061: syntax error : identifier 'SYSTEMTIME'
C:\Qt\Qt5.0.2\Tools\QtCreator\bin\crypt2test\include\CkCrypt2.h:429: error: C2061: syntax error : identifier 'SYSTEMTIME'
내가 보는 파일로 상대 :
void appendDateRfc822(SYSTEMTIME &sysTime);
void appendDateRfc822Gmt(SYSTEMTIME &sysTime);
// GETSIGNATURESIGNINGTIME_BEGIN
bool GetSignatureSigningTime(int index, SYSTEMTIME &outSysTime);
// GETSIGNATURESIGNINGTIME_END
SYSTEMTIME 구조에 대해 불평하고 있습니다. 그래서 나는 error C2061 를 찾아 기본적으로는 말한다 :
컴파일러가 예상되지 않은 식별자를 발견했다. 사용하기 전에 식별자가 선언 된 인지 확인하십시오.
#include <windows.h>
을하지만이 WINDOWS.H 파일 자체에 더 많은 오류에 이르게 : 나는 SYSTEMTIME을보고 수행하려고, 그래서 의미가
.
Qt에서 MS Visual C++ 컴파일러를 사용합니다. qmake를 사용하더라도. 나는 이것에 아주 새롭고 아직 나는 그것을 전부 이해하지 못한다. 또한 windows.h를 포함하면 도움이되지 않기 때문에이 문제를 해결하는 방법을 모릅니다.
여기에 무슨 문제가있는 것 같습니까? 이 문제는 내 컴파일러 또는 Microsoft Visual C++로 컴파일 된 타사 응용 프로그램을 사용하는 구성으로 인해 발생하며 Windows Visual C++ 컴파일러가 포함 된 Windows 컴퓨터에서이 도구를 사용하려고합니다.
도움이 필요하시면 감사드립니다.
EDIT1 : 이전에 언급 한 바와 같이 사실, 모든 및 qmake를하고 지금은 다른 오류가 프로젝트 없음을 구축 깨끗한 후에있는 Windows.h에서 발견되었다. 많은 거기 때문에 나는 스크린 샷을 만들었습니다 : http://i.imgur.com/B8EoENB.png
EDIT2 : 내가 포함 라이브러리를 조정 한 . 전에 CkCrypt의 멀티 스레드 라이브러리를 디버그 모드로 사용하고있었습니다. 나는 이제 하나의 realease 라이브러리를 포함시켰다. 동일한 디렉토리에 있습니다. windows.h를 포함 시키면 이미 정의 된 오류가 발생합니다. 그래서 나는 그 선을 다시 제거했다.이 결과 : http://i.imgur.com/z415txR.png 이것은 맨 아래에 MSVCRT가 다른 라이브러리와 충돌하는 것을 보여줍니다. 그것은 NODEFAULTLIB : library를 사용하는 것을 언급하지만 어떻게해야하는지 잘 모르겠습니다. Google은 처리하면서 최신 상태로 유지합니다.
"windows.h 파일 자체에 많은 오류가 있습니다"- 오류 메시지를 게시하십시오. –
@Riateche 표시 오류 스크린 샷과 함께 질문을 수정했습니다. 내 문제에 관심을 가져 주셔서 감사합니다. – Richard
Hello World 프로젝트를 컴파일 할 수 있습니까? 모든 라이브러리가 동일한 컴파일러로 빌드되어 있습니까? –