Михаиллл
Михаиллл19. Januar 2019 05:08

Как документ RTF конвертировать в HTML

Qt, rtf, HTML, CONVERT

Добрый день.
Как документ RTF конвертировать в HTML?
Могу его открыть и прочитать так:

    QString file = QFileDialog::getOpenFileName(0, "Выберете резюме hh.ru", "", "*.rtf");
    if(!file.isEmpty())
    {
        QFile sFile(file);
        if(sFile.open(QFile::ReadOnly | QFile::Text)){
            QTextStream in(&sFile);
            //QTextDocument textDocument;
            //textDocument = in.readAll().toHtmlEscaped();
            QString text = in.readAll();
            sFile.close();

            ui->ResumeHHTextEdit->setHtml(text);
            qDebug()<<text;
        }
    }

Тут Есть подходящая библиотека. Вот , наверно, нужный dll.
Itenso.Rtf.Converter.Html.dll Itenso.Rtf.Converter.Html.dll
Но не могу его дабавить его к проекту как библиотеку, проект требует только формат .lib

Еще тут есть проект. Но не пойму, как еого использовать.
Помогите пожалуйста.

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.

Magst du es? In sozialen Netzwerken teilen!

26
Михаиллл
  • 19. Januar 2019 05:41

хотя как динамическая Itenso.Rtf.Converter.Html.dll подключается

    Михаиллл
    • 19. Januar 2019 10:41

    Нашел тут код конвертации:

    var
      W: Variant;
    begin
      W := CreateOleObject('Word.Application');
      W.Documents.Open('e:\test.rtf',False,False);
      W.ActiveDocument.SaveAs('e:\test.html',wdFormatHTML);
      W.ActiveDocument.CLose;
      W.Quit;
      W := UnAssigned;
    

    но это видимо синтаксис VS.
    Помогите пожалуйста переписать под QT.
    Наверно это будет примерно так:

     QString resumeFileName = QFileDialog::getOpenFileName(0, "Выберете резюме hh.ru", "", "*.rtf");
        QString saveFile = "C:/Users/MS/Downloads/Test.html";
            if(!resumeFileName.isEmpty())
            {
                  QAxObject   wordApplication("Word.Application");
                  QAxObject *documents = wordApplication.querySubObject("Documents");              
                  //QAxObject *document = documents->querySubObject("Open(const QString&, bool)", resumeFileName, true);
                  QAxObject *document = documents->querySubObject("Open(const QVariant&, bool)", resumeFileName, true);
                  QAxObject *words = document->querySubObject("Words");
                  words->querySubObject("Тут запрос конвертации");
    
                  document->dynamicCall("Close (boolean)", false);
               } 
    
    
      Михаиллл
      • 19. Januar 2019 11:23

      извиняюсь, код на делфи, но подход наверно правильный.

        Evgenii Legotckoi
        • 19. Januar 2019 13:08

        Добрый день.

        Я с ActiveX на Вы полностью до незнакомства. Но если поясните кое-какие моменты, то возможно у меня будет идея, которая вас натолкнёт на нужное русло. Поэтому вопрос такой.

        А Вы нашли вообще способ сохранять файлы через QAxObject? Дело в том, что тот код на Дельфи-то конечно отражает алгоритм, но библиотеки-то разные?

        Впрочем, если смотреть на то, что вы имеете, то возможно, для запроса конвертации нужно записать что-то подобное.

        words->querySubObject("SaveAs('e:\test.html', wdFormatHTML)");
        

        Но не знаю, у вас уже есть какие-нибудь примеры сохранение через QAxObject?

          Михаиллл
          • 20. Januar 2019 08:33

          Так тоже не работает, но наверно что то похожее должно заработать.
          Что то похожее я видел тут и тут .
          Как я понял этот вариант должен работать через библиотеки Word. Запрос querySubObject должен вызвать нужную функцию.

            Михаиллл
            • 20. Januar 2019 08:35

            Еще я видиле библиотеки на java и C#, которые могут также конывертировать. Не знаете ли вы, можно ли их использовать?

              Evgenii Legotckoi
              • 21. Januar 2019 02:40

              Бибилотеки Java и С# можно использовать, если они будут добавлены в самостоятельную программу, которая будет работать в консольном режиме. Тогда через QProcess можно будет вызывать данную программу и выполнять конвертирование.

              Я бы попытался по возможности распарсить получаемый текст, если там удаётся извлечь хоть что-то, что походит на сколько-нибудь структурированные данные. Конечно, придётся с регулярками повозиться.

                Михаиллл
                • 21. Januar 2019 03:11

                Похоже я нашел решение на с++
                Тут автор описывает про магическое превращение через буфер обмена средствами Word.
                Вот
                7925-Rtf2HtmlProj.zip 7925-Rtf2HtmlProj.zip
                Вот код автора:

                // Rtf2Html.cpp : Defines the entry point for the console application. 
                // 
                #include "stdafx.h" 
                #include "Rtf2Html2.h" 
                #include "afxhtml.h" 
                
                CWinApp theApp;  // Win32 App with MFC support 
                
                CRichEditCtrl g_ctlRichEdit;  // the two controls 
                CHtmlEditCtrl g_ctlEditHtml; 
                
                // This is needed to load the RichEdit control from a file 
                static DWORD CALLBACK  
                MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb) 
                { 
                   CFile* pFile = (CFile*) dwCookie; 
                   *pcb = pFile->Read(pbBuff, cb); 
                   return 0; 
                } 
                
                void LoadRtfFile( LPCTSTR pszFilename ) 
                { 
                    wchar_t szFilter[] = L"RTF files (*.rtf)|*.rtf;|" 
                                         L"All Files (*.*)|*.*||"; 
                    CFileDialog dlg(TRUE,0,pszFilename,6,szFilter ); 
                    if ( dlg.DoModal()!=IDOK ) { 
                        return; 
                    } 
                    CFile cf( dlg.GetPathName(),CFile::modeRead ); 
                
                    // CFile cf( pszFilename,CFile::modeRead ); 
                    EDITSTREAM es; 
                    es.dwCookie = (DWORD)&cf; 
                    es.pfnCallback = MyStreamInCallback;  
                    g_ctlRichEdit.StreamIn( SF_RTF, es ); // load from the file 
                } 
                
                int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) 
                { 
                    AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0); 
                    AfxInitRichEdit2(); // needed for using CRichEditCtrl 
                
                    CWnd* pWnd = CWnd::GetDesktopWindow(); 
                    CRect r(0,0,200,200); 
                
                    g_ctlRichEdit.Create( ES_MULTILINE, r, pWnd, 1111); 
                    g_ctlEditHtml.Create( 0,0, r, pWnd, 2222 ); 
                
                    LoadRtfFile( argv[1] );     // read the RTF file into the ctrl  
                    g_ctlRichEdit.SetSel(0,-1); // select all in the RTF ctrl 
                    g_ctlRichEdit.Copy();       // copy to clipboard 
                    g_ctlEditHtml.Paste();      // paste into the Html Edit ctrl 
                    g_ctlEditHtml.SaveAs( L"C:\\temp\\test.html");  // save HTML 
                
                    return 0; 
                }
                

                Не могли бы вы мне помочь адаптировать это под QT

                  Evgenii Legotckoi
                  • 21. Januar 2019 03:38

                  Call back функцию (MyStreamInCallback) можно так и копировать в проект на Qt, также функцию LoadRtfFile можно так и копировать.

                  Думаю, что здесь особо адаптировать-то нечего, просто добавить в проект на Qt все те функции, а код в _tmain вынести в какой-нибудь слот.

                    Михаиллл
                    • 21. Januar 2019 06:16
                    • (bearbeitet)

                    Попробовал, но QT выдает много ошибок, говорит что не знает : LPCTSTR, CFileDialog, CFile, EDITSTREAM и т.д.
                    Для того, чтобы это испраить, видимо нужны какие то файлы из MSVC.

                    Так же нашел библиотеку, скомпилированную на C# .
                    Там же и примеры на C#.
                    Вот документация по этой библиотеке.
                    Подключил эту библиотеку.
                    Пробую воспользоваться этой библиотекой, пока выходит так:

                    typedef void (*MyPrototype)(QString);
                        MyPrototype OpenDocx = (MyPrototype) rtf2HtmlLib.resolve("OpenDocx");
                        MyPrototype ToHtml = (MyPrototype) rtf2HtmlLib.resolve("ToHtml"); 
                    

                    Помогите пожалуйста разобраться с этим

                      Михаиллл
                      • 21. Januar 2019 06:50

                      Для решения этой задачи нужно как-то использовать функцию

                      public string ConvertFileToString(
                          string inputFileName
                      )
                      Public Function ConvertFileToString ( _
                          inputFileName As String _
                      ) As String
                      

                      вот только она не статичная и не понятно как создать объект нужного класса

                        Evgenii Legotckoi
                        • 21. Januar 2019 07:35

                        Ну не цепляются C# библиотеки в C++ коде, обратное возможно.

                          Михаиллл
                          • 21. Januar 2019 09:48

                          Скажите пожалуйста, что же делать с ошибками незнания: LPCTSTR, CFileDialog, CFile, EDITSTREAM и прочего

                            Evgenii Legotckoi
                            • 21. Januar 2019 09:53
                            • (bearbeitet)

                            Это всё из MFC, нужно заменять на QFileDialog, QFile и т.д. Или подключать соответствующие библиотеки из WinAPI, что априори плохая мысль, если используется Qt. . Не работал с теми библиотеками, только с Qt.

                            Делать это строчка, за строчкой. А не сразу наскоком.

                              Михаиллл
                              • 21. Januar 2019 11:24

                              Нашел ссылку на древние типы данных , а тут нынешние их аналоги.
                              Но все равно каое что непоня:
                              что такое : LPCTSTR, CALLBACK (наверно QDialig),IDOK, EDITSTREAM, TCHAR
                              Код у меня получился (не доработанный) такой:

                              #ifndef RTFTOHTML_H
                              #define RTFTOHTML_H
                              
                              #include <QFile>
                              #include <QDialog>
                              // Rtf2Html.cpp : Defines the entry point for the console application. 
                              // 
                              //#include "stdafx.h" 
                              //#include "Rtf2Html2.h" 
                              //#include "afxhtml.h" 
                              
                              //CWinApp theApp;  // Win32 App with MFC support 
                              
                              //CRichEditCtrl g_ctlRichEdit;  // the two controls 
                              //CHtmlEditCtrl g_ctlEditHtml; 
                              
                              // This is needed to load the RichEdit control from a file 
                              static int CALLBACK  
                               MyStreamInCallback(int dwCookie, char pbBuff, long long cb, long long *pcb) 
                              { 
                                 QFile* pFile = (QFile*) dwCookie; 
                                 *pcb = pFile->Read(pbBuff, cb); 
                                 return 0; 
                              } 
                              
                              void LoadRtfFile( LPCTSTR pszFilename ) 
                              { 
                                  wchar_t szFilter[] = L"RTF files (*.rtf)|*.rtf;|" 
                                                       L"All Files (*.*)|*.*||"; 
                                  QFileDialog dlg(true,0,pszFilename,6,szFilter ); 
                                  if ( dlg.DoModal()!=IDOK ) { 
                                      return; 
                                  } 
                                  QFile cf( dlg.GetPathName(),QFile::modeRead ); 
                              
                                  // QFile cf( pszFilename,QFile::modeRead ); 
                                  EDITSTREAM es; 
                                  es.dwCookie = (int)&cf; 
                                  es.pfnCallback = MyStreamInCallback;  
                                  g_ctlRichEdit.StreamIn( SF_RTF, es ); // load from the file 
                              } 
                              
                              int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) 
                              { 
                                  AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0); 
                                  AfxInitRichEdit2(); // needed for using CRichEditCtrl 
                              
                                  CWnd* pWnd = CWnd::GetDesktopWindow(); 
                                  CRect r(0,0,200,200); 
                              
                                  g_ctlRichEdit.Create( ES_MULTILINE, r, pWnd, 1111); 
                                  g_ctlEditHtml.Create( 0,0, r, pWnd, 2222 ); 
                              
                                  LoadRtfFile( argv[1] );     // read the RTF file into the ctrl  
                                  g_ctlRichEdit.SetSel(0,-1); // select all in the RTF ctrl 
                                  g_ctlRichEdit.Copy();       // copy to clipboard 
                                  g_ctlEditHtml.Paste();      // paste into the Html Edit ctrl 
                                  g_ctlEditHtml.SaveAs( L"C:\\temp\\test.html");  // save HTML 
                              
                                  return 0; 
                              }
                              
                              #endif // RTFTOHTML_H
                              
                              

                              помогите пожалуйста до конца разобраться с ним.
                              И скажите пожалуйста , почему не стоит использовать WinAPI, при работе с QT?

                                Михаиллл
                                • 22. Januar 2019 03:54

                                Тут нашел
                                rtftohtml_win32.zip rtftohtml_win32.zip . Похоже она скомпилированна на С++.
                                Подключил библиотеку как динамическую.
                                Теперь пытаюсь воспользоваться методом

                                char * ConvertString(char * rtfBuf, char * htmlBuf, struct convertOptions opt) 
                                

                                Пока заготовка такая

                                typedef void (*MyPrototype)(QString);
                                    MyPrototype ConvertRtfFileToString = (MyPrototype) rtf2HtmlLib.resolve("ConvertString");
                                    QString text;
                                    text = ConvertRtfFileToString("C:/Users/MS/Desktop/Резюме/резюме/отправила - 3334709 - Дмитрий.rtf");
                                

                                Но выдает ошибку: no viable overloaded '='
                                Помогите пожалуйста воспользоваться этим методом.

                                  Evgenii Legotckoi
                                  • 22. Januar 2019 04:06
                                  • (bearbeitet)

                                  Там в примерах в архиве есть пример определения сигнатуры функции.

                                  typedef int (* cfunc)(char * rtffile, char *outfolder, struct convertOptions);
                                  cfunc ConvertFile;
                                  

                                  То есть сигнатура только так может объявляться. Вам нужно передать имя файла, каталог, где он находится и структуру настроек. Иначе никак. Передача QString туда никак не подойдёт.

                                  Думаю, что в документации там есть информация о параметрах в той структуре настроек.

                                    Михаиллл
                                    • 22. Januar 2019 11:02

                                    В документации она не описанна, только в примере:

                                    struct convertOptions
                                    {
                                        int  htmlType;           //0-XHTML, 1- HTML, 2-HTML+CSS
                                        char title[120];         //Page title   
                                        char extension[10];      //for example, ".html"
                                        char fontFace[50];       //for example, "Arial" or "Times New Roman"
                                        char fontSize[10];       //for example ,"10"
                                        int  preserveImages;     //0-no, 1 - yes 
                                        int  preserveFontFace;   //0-no, 1 - yes 
                                        int  preserveFontSize;   //0-no, 1 - yes 
                                        int  preserveFontColor;  //0-no, 1 - yes 
                                        int  preserveHyperlinks;    //0-no, 1 - yes
                                        int  tableBorders;       //0-invisble, 1 - visible
                                        int  encoding;           /* Windows_1250=0, Windows_1251=1, Windows_1252=2, Windows_1253=3,
                                                                    Windows_1254=4, Windows_1255=5, Windows_1256=6, Windows_1257=7,
                                                                    Windows_1258=8, ISO_8859_1=9,   ISO_8859_2=10,  ISO_8859_3=11,
                                                                    ISO_8859_4=12,  ISO_8859_5=13,  ISO_8859_6=14,  ISO_8859_7=15,
                                                                    ISO_8859_8=16,  ISO_8859_9=17,  KOI8_R=18,      UTF_8=19    */
                                        int  htmlParts;          //0-html Complete, 1 - only between <body>..</body>
                                        char imageFolder[500];   //folder where image will be stored
                                        char cssStyleName[120];  //style name, for example "ts"
                                        int  fontSizesType;      //0-normal sizes, 1 - medium sizes, 2 - big sizes, 3 - huge sizes
                                        char imageSubfolder[120];//will create subfolder for storing images, if ""-empty string then images will be strored in 'image_folder' 
                                        int  hyperlinkTarget;    //0 - no target, 1 - target="_blank",  2 - _self, 3 - _parent, 4 - _top
                                        int  cssStartNumber;     //number for style name, like a .tsN (.ts1 or .ts100)
                                        char Serial[12];
                                    };
                                    

                                    На этой строчке

                                    ConvertFile=(cfunc)GetProcAddress(rtf2HtmlLib,"ConvertFile");
                                    

                                    Выдает ошибку : no matching function for call to 'GetProcAddress'

                                    попробовал сделать так и программа зависла

                                    ypedef int (* cfunc)(char * rtffile, char *outfolder, struct convertOptions);
                                        cfunc ConvertFile;
                                    
                                    
                                        int ret;
                                        char rtffile[_MAX_PATH];
                                        char outfolder[_MAX_PATH];
                                    
                                        //load library
                                        //HINSTANCE rtf2HtmlLib=LoadLibrary("Sautinsoft.RTFToHTML.Win32.dll");
                                    
                                        /*if(rtf2HtmlLib==NULL)
                                        {
                                          printf("Unable to load library\n");
                                          getchar();
                                          //return 0;
                                        }*/
                                        //ConvertFile=(cfunc)GetProcAddress(rtf2HtmlLib,"ConvertFile");
                                    
                                        //typedef void (*MyPrototype)(QString *rtfFile, QString *outFolder, struct convertOptions);
                                        //MyPrototype ConvertFile = (MyPrototype) rtf2HtmlLib.resolve("ConvertFile");
                                    
                                    
                                        /*if (ConvertFile==NULL)
                                        {
                                            printf("Can't load function.\n");
                                            FreeLibrary((HMODULE)rtf2HtmlLib);
                                            getchar();
                                            //return 0;
                                        }*/
                                        //
                                        printf("Please enter rtf file (example: d:\\my.rtf):\n");
                                        gets(rtffile);
                                        printf("Please enter output folder (example : d:\\temp):\n");
                                        gets(outfolder);
                                    
                                        //set conversion params
                                        struct convertOptions ct;
                                        ct.cssStartNumber=1;
                                        strcpy(ct.cssStyleName,"ts");
                                        ct.encoding=9;
                                        strcpy(ct.extension,".htm");
                                        strcpy(ct.fontFace,"Verdana");
                                        strcpy(ct.fontSize,"10");
                                        ct.htmlType=1;
                                        ct.preserveFontColor=1;
                                        ct.preserveFontFace=1;
                                        ct.preserveFontSize=1;
                                        ct.preserveImages=1;
                                        ct.preserveHyperlinks=1;
                                        ct.tableBorders=1;
                                        ct.htmlParts=0; //only between <body>...</body>
                                        strcpy(ct.title,"My Page");
                                        strcpy(ct.imageFolder,"D:\\");
                                        strcpy(ct.imageSubfolder,"test.files");
                                        ct.hyperlinkTarget=0;
                                        strcpy(ct.Serial,"Serial number");
                                    
                                    
                                        ret=ConvertFile("C:/Users/MS/Desktop/Резюме/резюме/отправила - 3334709 - Дмитрий.rtf","C:/Users/MS/Desktop/Резюме/резюме",ct);
                                    
                                        switch(ret)
                                        {
                                            case -1 : puts("Check your serial number");break;
                                            case 0 : puts("Conversion completed");break;
                                            case 2 : puts("Not enough memory"); break;
                                            case 3 : puts("Can't open output file"); break;
                                            case 4 : puts("Can't open input file"); break;
                                            case 5 : puts("The input file has zerow length"); break;
                                            default: break;
                                        }
                                        //flushall
                                        getchar();
                                    

                                    Помогите пожалуйста разобраться с этой библиотекой

                                      Evgenii Legotckoi
                                      • 22. Januar 2019 13:19

                                      Только если на выходных гляну, у самого своих проектов до кучи, чтобы разбираться в рабочие дни с незнакомой библиотекой.

                                        Михаиллл
                                        • 23. Januar 2019 02:54
                                        • (bearbeitet)

                                        Зарание спасибо.
                                        А еще на эту тему можно будет сделать статью. Это контент будет уникальным.

                                          Evgenii Legotckoi
                                          • 25. Januar 2019 07:03
                                          • (bearbeitet)

                                          А вы случаем ту библиотеку не планируете подключать в приложение на Андроид?

                                          И вообще использовать ActiveX на андроиде?

                                            Михаиллл
                                            • 25. Januar 2019 07:25

                                            нет, не планирую

                                              Михаиллл
                                              • 25. Januar 2019 08:44
                                              • Die Antwort wurde als Lösung markiert.

                                              вот именно так работает конвертация:

                                              QVariant fileFormat(0x0000000A);     //Saving as filtered html
                                                  QString resumeFileName; //= QFileDialog::getOpenFileName(0, "Выберете резюме hh.ru", "", "*.rtf");
                                                  resumeFileName = "C:\\Users\\MS/Downloads\\Абсент.docx";
                                                  QString saveFile = "C:\\Users\\MS/Downloads\\Test.html";
                                                      if(!resumeFileName.isEmpty())
                                                      {
                                                            QAxObject   wordApplication("Word.Application");
                                                            QAxObject *documents = wordApplication.querySubObject("Documents");
                                              
                                                            QAxObject *document = documents->querySubObject("Open(const QVariant&, bool)", resumeFileName, true);
                                                            document->querySubObject("SaveAs(const QVariant&,const QVariant)", saveFile, fileFormat);
                                              
                                              
                                                            document->dynamicCall("Close (boolean)", false);
                                              
                                              
                                              
                                                            qDebug()<<resumeFileName;
                                                      }
                                              

                                              конвертирует через ворд

                                                Evgenii Legotckoi
                                                • 25. Januar 2019 08:45

                                                Я вас поздравляю. Приятно наблюдать за прогрессом.

                                                  Evgenii Legotckoi
                                                  • 25. Januar 2019 08:48
                                                  • (bearbeitet)

                                                  Пожалуй, я тогда не буду заниматься той библиотекой. Всё равно она какая-то мутная на первый взгляд.

                                                    Михаиллл
                                                    • 25. Januar 2019 11:05

                                                    и еще в конце нужно дописать для закрытия процесса (иначе будет в памяти висеть):

                                                    wordApplication.dynamicCall("Quit()");
                                                    

                                                      Kommentare

                                                      Nur autorisierte Benutzer können Kommentare posten.
                                                      Bitte Anmelden oder Registrieren
                                                      Letzte Kommentare
                                                      A
                                                      ALO1ZE19. Oktober 2024 08:19
                                                      Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                                                      ИМ
                                                      Игорь Максимов5. Oktober 2024 07:51
                                                      Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                                                      d
                                                      dblas55. Juli 2024 11:02
                                                      QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                                      k
                                                      kmssr8. Februar 2024 18:43
                                                      Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                                                      Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                                                      Jetzt im Forum diskutieren
                                                      J
                                                      JacobFib17. Oktober 2024 03:27
                                                      добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
                                                      JW
                                                      Jhon Wick1. Oktober 2024 15:52
                                                      Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
                                                      КГ
                                                      Кирилл Гусарев27. September 2024 09:09
                                                      Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
                                                      F
                                                      Fynjy22. Juli 2024 04:15
                                                      при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

                                                      Folgen Sie uns in sozialen Netzwerken