Qt <winInet.h> outputs many C4430 & C2146 Errors on build - c++

List of Errors
I think I have included the library for winInet.h in the QT Project file here:
project.pro
QT += qml quick network
CONFIG += c++11
SOURCES += main.cpp \
xmap.cpp
RESOURCES += qml.qrc
LIBS += -lwininet
Everytime I try qmake and build the header file shows many syntax errors and I'm curious if its because I'm wrong in my qt project file syntax.
xmap.h
#ifndef XMAP_H
#define XMAP_H
#include <iostream>
#include <WinInet.h> // <--- ISSUE
#include <Windows.h>
#include <time.h>
class xmap
{
public:
xmap();
// test connection to websites for data
int CheckConnection(int connection = 0);
// pull data from online sources to be evaluated by the model
void RequestAndSaveData(std::string filename);
};
#endif // XMAP_H

Essentially the same as C++ 307 Errors when trying to include winhttp.h in visual studio 2010, except that was using WinHttp instead of WinInet.
Still, same solution: include <Windows.h> before <WinInet.h>.

Related

Qt OpenCV programm exits with code -1073741515

What i want to do
I try to use opencv and run a short example program.
Problem
It exits with code -1073741515. I never managed to use openCV on any of the 4 systems i tried, so i do something wrong but don't know what.
I had diffrenet errors using different attempts (undefined reference, crashing programm without error code, etc.), this here is the just simplest example.
What i figured out
Another post told me, that -1073741515 is equal to 0xC0000135 meaning STATUS_DLL_NOT_FOUND.
What i tried
The programm crashes, if include #include <opencv2/core/core.hpp>,
#include <opencv2/highgui/highgui.hpp>and
#include <opencv2/imgproc/imgproc.hpp>. When i comment them out, it runs wnd returns 0 as intended. I don't even need to use anything like cv::Mat or something to make it crash. That seems strange, because the code completion suggests me stuff from openCV, so it somehow sees it. Including #include <opencv2/opencv.hpp> instead leads to the same error code. Including something beginning with opencv (not opencv2) works, for example #include <opencv/cv.hpp>, but has not enough functionality.
Source file
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace std;
int main()
{
cv::Mat InputImage = cv::imread("C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum.jpg");
if(!InputImage.empty())
cv::imshow("test", InputImage);
else
cout << "imgage is empty" << endl;
return 0;
}
Project file
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
INCLUDEPATH += D:/opencv/build/include
LIBS += -LD:/opencv/build/x64/vc14/lib
LIBS += -lopencv_world343d
LIBS += -lopencv_world343
SOURCES += \
main.cpp
Relevant folders
Include path:
libs:
project:
build (copied the libs to the release/debug folders too):
Versions
QT 5.10.1
MSVC17 64bit Compiler
Windows 7 Enterprise 64bit
openCV 3.4.3 (vc14/vc15)
As Jiu pointed out in the comment above, the solution was simple:
Copy the .dll not the .lib and it works.

Using gdcm libs in UE4

For my UE4 project I want to use the GDCM libraries for C++ to load CT Scans. So I really tried a lot the last few days but I'm still not able to use GDCM... But where is the error? Can someone help me?
I created the dll and lib files with CMake (VS 2013 Win64) successfully.
I put all the libs in ...Unreal Projects\VolumeImport\ThirdParty\Includes\GDCM\Libraries
I added each of the 16 libs in the VolumeImport.Build.cs with
PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "gdcmMSFF.lib"));
PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "gdcmCommon.lib")); ...
I put all the header files in Unreal Projects\VolumeImport\ThirdParty\Includes\GDCM\Includes
I set the Includepath to this location in the project properties.
I put all the dlls in C:\Windows\System32
Then I used the headers:
#include "VolumeImport.h"
#include <gdcmVersion.h>
#include <gdcmReader.h>
#include <gdcmPixmapReader.h>
#include <gdcmImageReader.h>
#include <gdcmAttributes.h>
bool CTFileLoader::Convert_DICOM()
{
/** ... other well working code ... */
gdcm::Trace::SetDebug(false); gdcm::Trace::SetError(true);
gdcm::ImageReader reader;
reader.SetFilename(files_to_process[i].c_str());
if(!reader.Read()) { }
}
And I get an error in the gdcmMediaStorage.h: "error C4515: 'gdcm': Namespace uses itself."
I tried using different includes but this causes diffrent errors in diffrent headers... Is there something wrong with the libraries? But I'm sure they were added, because using only the gdcmTrace.h and the gdcm::Trace::functions works fine.
Now I got the solution:
In my VolumeImport.Build.cs I additionally added the DLLs:
PublicDelayLoadDLLs.Add(Path.Combine(LibrariesPath, "gdcmMSFF.dll")); ...
I changed the gdcmMediaStorage.h file: Comment out the "using namespace gdcm;"
Furthermore I had dynamic_cast problems with this big library and it needs to enable RTTI

Portaudio example "record_file.c" does not find "min"

First off, I alread got the smaller example paex_record.c to work.
I use MinGW on Windows8 and did compile portaudio from source, that's were I got the used libportaudio-2.dll from.
I set up a project in QtCreator (without gui) with following .pro-file:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
LIBS += -LC:/Audio/patest/paex_record_file -llibportaudio-2
My folder C:/Audio/patest/paex_record_file looks like:
libportaudio-2.dll
main.cpp
pa_ringbuffer.c
pa_ringbuffer.h
pa_util.h
paex_record_file.pro
paex_record_file.pro.user
portaudio.h
I copied both pa_ringbuffer and pa_util to this folder after they were not found.
Main.cppcontains the whole example file paex_record_file.c from the portaudio source.
There is an error when calling the ringbuffer (line 246 and 271: source):
"min" was not declared in this scope
I thought this example would directly run just like the record.c example.
Do I need to include further packages? I've tried algorithm, math, std and using namespace std, but still the error occurs. But I get the feeling it should work out off box, perhaps my include files or folder setup / linkage is not ok?
EDIT: Ok so I just defined a min-function on my own. Now it throws different error:
undefined reference to "PaUtil_GetRingBufferReadAvailable"
and a couple more of this kind. There is probably a lib missing to be linked, having a look...
I also had this linking error trying to compile paex_record_file.c. Turns out you need to compile pa_ringbuffer.c before compiling the main file. There's also an external dependency on some alloc function, so you need to change 2 lines in the file.
I'm not savvy of qt but you need to do something like:
SOURCES += pa_ringbuffer.c main.cpp
Here's how I compile with MinGW:
Changes inside paex_record_file.c
Line 313 : data.ringBufferData = (SAMPLE *) malloc( numBytes );
Line 443 : free( data.ringBufferData );
Compile with MinGW:
gcc -o p_rec.exe C:\path_to_portaudio\portaudio\common\pa_ringbuffer.c \
paex_record_file.c -lportaudio \
-IC:\path_to_portaudio\portaudio\src\common
I didn't get the min problem, but perhaps you can try to remove the ifdef guard and try to recompile.
#ifdef _WIN32
#include <windows.h>
#include <process.h>
#endif
to
#include <windows.h>
#include <process.h>

Error "Unresolved inclusion" while buidling Blackberry app

Trying to build BlackBerry 10 app . Some of its parts already has been done.I have downloaded ECLIPSE indigo, QT5.31, Blackberry SDK. Now i am trying to open it in Eclipse. But getting error :
Unresolved inclusion on following lines :
<bb/cascades/Application>
#include <Qt/5.3/qdeclarativedebug.h>
#include <bb/cascades/Application>
#include <bb/cascades/QmlDocument>
#include <bb/cascades/LocaleHandler>
#include <bb/cascades/AbstractPane>
#include <bb/cascades/LocaleHandler>
#include <bb/cascades/NavigationPane>
#include <bb/cascades/TabbedPane>
#include <bb/system/InvokeManager>
#include <bb/system/InvokeRequest>
#include <bb/system/InvokeTarget>
#include <bb/system/InvokeTargetReply>
#include <bb/device/DisplayInfo>
Project has following files with
.CPP
.HPP
.QML
.PRO
.UI
extension.
Thanks
.PRO file has following code :
APP_NAME = Gazzet
CONFIG += qt warn_on cascades10
include(config.pri)
LIBS += -lbb -lbbdevice -lbbdata -lbbsystem -lbbplatform -lbbplatformbbm
I dont know if thats the correct soluton but
I downloaded Momentics IDE with Blackberry 10 SDK and those errors where gone.
Thanks

Qt Creator build project - No such file or directory

Sorry to being a noob, but I just moved from Window, Eclipse and Java to OpenSUSE, C++ and Qt Creator, and I met a problem. I am working to create a QGIS application, I have the *.h files in /usr/include/gqis, and *.so files in /usr/lib. I added this line
INCLUDEPATH += /usr/local/include/qgis
at the end of .pro file of project so I can include QGIS library. So far as I coded, everything went smoothly, but when I built the project, Qt Creator threw an error:
qgis.h: No such file or directory
/usr/include/qgis/qgsapplication.h
and it mapped to line 4:
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <qgis/qgsvectorlayer.h>
#include <qgis/qgsapplication.h>
#include <qgis/qgsproviderregistry.h>
#include <qgis/qgssinglesymbolrenderer.h>
#include <qgis/qgsmaplayerregistry.h>
#include <qgis/qgsvectorlayer.h>
#include <qgis/qgsmapcanvas.h>
As far as I searched, I am still unable to solve this problem. Please can anyone help me?
You should do:
INCLUDEPATH += /usr/local/include/qgis
and
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <qgsvectorlayer.h>
#include <qgsapplication.h>
#include <qgsproviderregistry.h>
#include <qgssinglesymbolrenderer.h>
#include <qgsmaplayerregistry.h>
#include <qgsvectorlayer.h>
#include <qgsmapcanvas.h>
Try just:
INCLUDEPATH += /usr/local/include/
Afterall, the qgis is already listed in the #include <qgis/...> path.
I'm using a windows Machine. I'm not sure why this is the case but if you put your project in a shallow directory, the problem might go away. Instead of something like C:\Projects\C++\IntroToDesignPatterns2012\Chapter13\objectBrowser02\objectBrowser02
Try something simple like C:\Projects\objectBrowser02