मैं Qt
के साथ एक कंसोल एप्लिकेशन बनाने की कोशिश कर रहा हूं और तर्कों को पुनर्प्राप्त करने का प्रयास करते समय वास्तव में अजीब व्यवहार का सामना कर रहा हूं। मेरी कक्षा QCoreApplication
से ली गई है जिसमें एक ऐसा फ़ंक्शन है जो सामान्यतः strings
की कुछ सूची में सभी तर्क डाल देना चाहिए। लेकिन कुछ मामलों में कॉल सेगमेंटेशन गलती में समाप्त होता है।रहस्यमय मामलों में QCoreAplication के साथ उपयोगकर्ता के तर्क खाली हैं
कोड यह रहा:
main.cpp
#include "Diagramm.h"
int main(int argc, char *argv[])
{
Diagramm application(argc, argv);
application.run();
return EXIT_SUCCESS;
}
Diagramm.h
#include <QCoreApplication>
#include <iostream>
#include <QStringList>
#include <QFile>
#include <QDebug>
class Diagramm : public QCoreApplication
{
Q_OBJECT
public:
Diagramm(int argc, char *argv[]);
void run();
private:
void testArguments();
signals:
public slots:
};
Diagramm.cpp
#include "Diagramm.h"
Diagramm::Diagramm(int argc, char *argv[]) : QCoreApplication(argc, argv)
{
//std::cout << "calling Diagramm constructor" << std::endl;
}
void Diagramm::run()
{
testArguments();
}
void Diagramm::testArguments()
{
//get source and target files from arguments
QStringList arguments = this->arguments();
if(arguments.count() < 2)
{
std::cout << "Missing arguments" << std::endl;
return exit(1);
}
}
जब संकलन और इसके बाद के संस्करण कोड को क्रियान्वित करने, सब कुछ काम करता है ठीक, लेकिन मैं समारोह testArguments
की पहली पंक्ति पर एक विभाजन गलती (arguments()
करने के लिए कॉल)
मैं घंटों के लिए उस पर किया गया है, क्यूटी के दस्तावेज़ पढ़ने मिल गया है जब मैं Diagramm
के निर्माता में लाइन uncomment, मंच ... क्या कोई जानता है कि वह कहां से आ सकता है? किसी भी विचार की सराहना की जाएगी।
नोट: मैं उद्देश्य पर exec
फ़ंक्शन को कॉल नहीं कर रहा हूं क्योंकि मुझे किसी भी ईवेंट लूप की आवश्यकता नहीं है।
वह था। आपका बहुत बहुत धन्यवाद ! दूसरों के लिए, ऊपर दिया गया कोड होना चाहिए: (main.cpp में) 'आरेखण अनुप्रयोग (argc, &argv);' (Diagramm.cpp में) 'आरेखण :: आरेख (int और argc, char ** argv []): QApplication (argc, * argv) ' – Ote