C++: namespace std + Win32?

Status
Niet open voor verdere reacties.

SmokingCookie

Nieuwe gebruiker
Lid geworden
30 mei 2008
Berichten
4
Hallo,

Ik heb nog weinig ervaring met C++.

Ik wil een console-applicatie maken die cout en cin ondersteunt, maar ook Win32-functies als SendMessage ondersteunt. Mijn compiler geeft echter een aantal syntax errors als ik windows.h en/of commctrl.h wil "includen" (zie onderaan).

Tevens wordt het console-venster alleen getoond als de vetgedrukte regels in comments staan. Als dit wel het geval is, wordt de code feilloos uitgevoerd

Kan iemand mij vertellen hoe ik dit op kan lossen, of is dit onmogelijk?

(Voorlopige) code:

Code:
#include <cstdlib>
#include <iostream>
[B]#include <windows.h>
#include <commctrl.h>[/B]

using namespace std;

int main(int argc, char *argv[])
{
[B]    HWND hMessengerUI = 0;[/B]
    std::string MediaMessage;
    std::cout << "Please type a media message.\n";
    std::getline(std::cin,MediaMessage);

[B]    COPYDATASTRUCT oCOPY;
    LRESULT COPY;
    oCOPY.dwData = 0x547;
    oCOPY.cbData = 512;
    oCOPY.lpData = MediaMessage
    hMessengerUI = FindWindowEx(NULL,hMessengerUI,"MsnMsgrUIManager",NULL);
    while(hMessengerUI != 0) {
        COPY = SendMessage(hMessengerUI,WM_COPYDATA,0,oCOPY);
    }[/B]

    return EXIT_SUCCESS;
}

Errors:

Compiler: Default compiler
Building Makefile: "C:\Dev-Cpp\Projects\Media changer2\Makefile.win"
Bezig met uitvoeren van make...
make.exe -f "C:\Dev-Cpp\Projects\Media changer2\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/include"

main.cpp: In function `int main(int, char**)':

main.cpp:19: error: invalid conversion from `const void*' to `void*'
main.cpp:22: error: cannot convert `COPYDATASTRUCT' to `LPARAM' for argument `4' to `LRESULT SendMessageA(HWND__*, UINT, WPARAM, LPARAM)'

make.exe: *** [main.o] Error 1

Uitvoering voltooid
 
Laatst bewerkt:
Je mist op deze regel een punt-komma:
Code:
 oCOPY.lpData = MediaMessage
 
Hallo,

Bedankt voor je reactie.
Helaas, met puntcomma werkt het ook niet.

Kan er verder nog iets aan mankeren?

Alvast bedankt
 
Ik heb verder geen foutmeldingen.

Het is overigens geen MSN-bot. Alleen een utility om een mediabericht in te stekllen..
 
Je hebt op Helpmij.nl de vraag gesteld met als titel C++: namespace std + Win32?,
Het is 14 dagen geleden dat het bericht geplaatst is.
Nu vragen we je om de status van je vraag aan te passen indien deze is opgelost.

Nog niet opgelost...
 
COPY = SendMessage(hMessengerUI,WM_COPYDATA,0,oCOPY);
wordt
COPY = SendMessage(hMessengerUI,WM_COPYDATA,0,(LPARAM)&oCOPY);

En i.p.v. een std::string een char array gebruiken.

Code:
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <commctrl.h>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
    HWND hMessengerUI = 0;
    char mediabericht[512];

    std::string MediaMessage;
    std::cout << "Please type a media message.\n";
    std::getline(std::cin,MediaMessage);
    lstrcpy(mediabericht,MediaMessage.c_str());

    COPYDATASTRUCT oCOPY;
    LRESULT COPY;
    oCOPY.dwData = 0x547;
    oCOPY.cbData = 512;
    oCOPY.lpData = mediabericht;
    hMessengerUI = FindWindowEx(NULL,hMessengerUI,"MsnMsgrUIManager",NULL);
    while(hMessengerUI != 0) {
        COPY = SendMessage(hMessengerUI,WM_COPYDATA,0,(LPARAM)&oCOPY);
    }

    return EXIT_SUCCESS;
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan