Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 18:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



SHAppBarMessage mit Qt-Creator benutzen

Discussion on SHAppBarMessage mit Qt-Creator benutzen within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
jasdix's Avatar
 
elite*gold: 0
Join Date: Sep 2013
Posts: 16
Received Thanks: 5
SHAppBarMessage mit Qt-Creator benutzen

Hallo,

ich versuch jetzt seit paar Stunden die Funktion SHAppBarMessage in einem Projekt zu benutzen.
Ich will eigentlich eine Taskbar wie die Windows Taskbar bauen.
Ich programmiere in Qt-Creator. Habe für Qt eine AppBar gedownloadet und bekomme aber beim Compilieren folgenden Fehler.
Code:
QAppBar.obj:-1: Fehler:LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp_SHAppBarMessage" in Funktion ""public: void __cdecl QAppBar::setWidth(int)" (?setWidth@QAppBar@@QEAAXH@Z)".
Die Funktion dazu sieht so aus:
Code:
void QAppBar::setWidth( int w )
{
	// Positioning an appbar is a three-step process:
	// 1) We ask Windows what area is available for appbars by sending it an
	//    ABM_QUERYPOS with a RECT covering the entire desktop; it returns
	//    a modified RECT that excludes the taskbar and other appbars.
	// 2) We come up with a position and size for the appbar (based on
	//    this.edge and this.width), staying inside this RECT, and pass it
	//    to Windows using ABM_SETPOS.
	// 3) On the slim chance that another appbar appears between ABM_QUERYPOS
	//    and ABM_SETPOS, we'll get a modified RECT back.  Use this final
	//    RECT to setGeometry().
	
	// If child widgets have mandated a minimum width on this window, it
	// must be respected
	if( minimumWidth() != 0 ) w = max( w, minimumWidth());

	// Get the area of the entire desktop
	abd.rc.left = abd.rc.top = 0;
	abd.rc.right = GetSystemMetrics( SM_CXSCREEN );
	abd.rc.bottom = GetSystemMetrics( SM_CYSCREEN );
	
	// Let Windows subtract the amount being used by other appbars and the
	// taskbar
    SHAppBarMessage( ABM_QUERYPOS, &abd );
	
	// Position our window on either the left or right side of the screen
	if( abd.uEdge == ABE_LEFT ) abd.rc.right = abd.rc.left + w;
	else abd.rc.left = abd.rc.right - w;
	
	// Pass the final bounding rectangle to the system
	SHAppBarMessage( ABM_SETPOS, &abd );
	
	// Set our actual position based on what came back from ABM_SETPOS
	RECT& rc = abd.rc;
	setGeometry( rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top );
	resizeHandle->setFixedHeight( rc.bottom - rc.top );
}
Die includes der Header-Datei sehen so aus:
Code:
...
#include <windows.h>
#include <shellapi.h>
jasdix is offline  
Old 11/19/2013, 10:10   #2
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Hey,

vielen Dank für die Information, bitte halte uns auf dem Laufenden!
Nightblizard is offline  
Thanks
4 Users
Old 11/19/2013, 16:36   #3
 
jasdix's Avatar
 
elite*gold: 0
Join Date: Sep 2013
Posts: 16
Received Thanks: 5
Quote:
Originally Posted by Nightblizard View Post
Hey,

vielen Dank für die Information, bitte halte uns auf dem Laufenden!
Ich habe eigentlich gehoft IHR könnt mir bei meinem Problem helfen
jasdix is offline  
Old 11/20/2013, 14:07   #4
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Weil du es selbst nicht verstehst: er wollte dir damit eigentlich subtil klar machen, dass in deinem Post keine Frage oder sonstige, hilfreiche Informationen enthalten sind.

Weil ich heute gut drauf bin:

Du hast in deinem Projekt die shellapi.h included, soweit richtig. Was aber genau verursacht einen Linkerfehler? Die Lösung zu deinem Problem findest du auf der oben verlinkten Seite.

Padmak
Padmak is offline  
Old 11/20/2013, 16:59   #5
 
jasdix's Avatar
 
elite*gold: 0
Join Date: Sep 2013
Posts: 16
Received Thanks: 5
Quote:
Originally Posted by Padmak View Post
Weil du es selbst nicht verstehst: er wollte dir damit eigentlich subtil klar machen, dass in deinem Post keine Frage oder sonstige, hilfreiche Informationen enthalten sind.
Hmmm, ich habe einen Fehler beim Compilieren. Was soll ich da noch für Fragen stellen? Soll ich extra noch dazu schreiben, warum bekomme ich diesen Fehler?
Was für Infos hättest du gerne mehr gesehen? (Damit ich es für weitere Post weiß)

Quote:
Weil ich heute gut drauf bin:

Du hast in deinem Projekt die shellapi.h included, soweit richtig. Was aber genau verursacht einen Linkerfehler? Die Lösung zu deinem Problem findest du auf der oben verlinkten Seite.

Padmak
Ich weiß warum ein Linker Fehler auftritt, weil Bibliotheken fehlen. Ich weiß aber nicht, wie ich die am besten bei Qt-Creator einbinde kann. Ob über das Pro-File oder doch besser mit (in meinem Fall) #pragma comment(lib, "shell32.lib"). Zudem hatte ich an dem Abend auch noch mit #pragma Probleme.

Bin halt bisschen neu hier. Schade, dass gleich so auf einen Neuling draufgehauen wird
Gebt mir doch noch ein bisschen Welpenschutz
jasdix is offline  
Old 11/20/2013, 20:26   #6
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Naja, wenn ich Hilfe von anderen erwarte, dann versuche ich ihnen so viele Informationen über das Problem zu geben, wie es nur irgendwie geht. Nicht jeder hat eine Klaskugel auf seinem Schreibtisch stehen.

Quote:
Ich weiß warum ein Linker Fehler auftritt, weil Bibliotheken fehlen. Ich weiß aber nicht, wie ich die am besten bei Qt-Creator einbinde kann. Ob über das Pro-File oder doch besser mit (in meinem Fall) #pragma comment(lib, "shell32.lib"). Zudem hatte ich an dem Abend auch noch mit #pragma Probleme.
Na also, damit fang ich doch was an und muss weder rätselraten noch spoonfeeden.

Externe Libraries fügst du in der .pro Datei folgendermaßen hinzu:
Code:
LIBS += -L"pfad\zur\datei" -lDATEINAME
# Beispiel mit mylib.lib im Verzeichnis "C:\MyLib":
# LIBS += -L"C:\MyLib" -lmylib
Nightblizard is offline  
Thanks
1 User
Old 11/20/2013, 23:43   #7
 
jasdix's Avatar
 
elite*gold: 0
Join Date: Sep 2013
Posts: 16
Received Thanks: 5
Danke, werde ich gleich mal ausprobieren.
Ich hab natürlich bei google auch geguckt gehabt. Die haben immer nur was von wegen LIBS += name.lib geschrieben und das ging nicht


Ich hab halt gedacht der Fehler sagt mehr als 1000 Worte

Eine kleine Frage hab ich aber noch. Mit #pragma ... könnte ich aber auch arbeiten oder?
jasdix is offline  
Old 11/21/2013, 15:14   #8
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Ich bin mir nicht sicher, ob der von Qt mitgelieferte Compiler #pragma comment unterstützt. Wenn die den gcc nutzen, dann wird das nicht funktionieren.
Nightblizard is offline  
Old 11/21/2013, 15:21   #9
 
Doktor.'s Avatar
 
elite*gold: 0
Join Date: Aug 2011
Posts: 1,190
Received Thanks: 549
Jep, minGW ignoriert alle #pragma comments.

Mit MSVC2012 o.Ä. könntest du es aber machen
Doktor. is offline  
Thanks
1 User
Old 11/21/2013, 23:12   #10

 
Delinquenz's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 1,160
Received Thanks: 232
Quote:
Eine kleine Frage hab ich aber noch. Mit #pragma ... könnte ich aber auch arbeiten oder?
#pragma ist aber eher unschön. Man muss sich nur mal den Fall vorstellen, dass man ein ziemlich großes Projekt vorgelegt kriegt und die Dependencies über alle Dateien verteilt sind anstatt ordentlich in den Projekteinstellungen festgelegt.
Delinquenz is offline  
Reply


Similar Threads Similar Threads
Anzeigen-Lesen.de [Email Creator|Account Creator|Active Bot]
10/08/2013 - elite*gold Trading - 3 Replies
Anzeigen-Lesen.de Bot Dieser Bot ist für die Seite Anzeigen lesen - Geld verdienen Man kann mit diesem Programm einfach Refs erstellen, wofür man 1 €* bekommt + 10 % vom Anzeigen lesen. Ganz einfach Email Accounts erstellen, danach kann man auch schon Anzeigen-Lesen.de Accounts erstellen, welche echte Namen und Adressen verwenden. Außerdem kann man mit dem Bot anzeigen klicken lassen, also dass die Refs auch aktiv sind. Man sollte es aber nicht übertreiben mit dem Account erstellen und...
[S]Facebook Account Creator Or Youtube Account Creator[B]500EliteGold je Creator
02/06/2013 - Coders Trading - 9 Replies
^TOPIC . .
[S]Facebook Account Creator Or Youtube Account Creator[B]500EliteGold je Creator
02/03/2013 - elite*gold Trading - 2 Replies
^TOPIC . .
2in1 Bot ! Yahoo Creator & Youtube Creator ! Bietet mir was an !
06/23/2012 - elite*gold Trading - 16 Replies
Hallo und herzlich wilkommen! Ich verkaufe einen Youtube und Yahoo EmaiL Creator ! Hinweise : Es kommen Fehlermeldungen die nicht zu beachtet werden sollen. Er umgeht die Handyabfrage.



All times are GMT +2. The time now is 18:31.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.