Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Instalacja aktualnej biblioteki WinAPI w wxDev-C++

Ostatnio zmodyfikowano 2015-11-24 16:26
Autor Wiadomość
AdamS
Temat założony przez niniejszego użytkownika
Instalacja aktualnej biblioteki WinAPI w wxDev-C++
» 2015-11-14 09:32:12
Witam.
W moim programie (na konsolę) f. CreateFile() !nie otwiera istniejącego wirtualnego portu COM14 - zwraca INVALID_HANDLE_VALUE (-1).
W/w port COM14 istnieje i widać go w DeviceManager na moim komputerze.
C/C++
hCommDev = CreateFile( "\\.\COM14", //"\\.\COM10" - syntax wg WinAPI
GENERIC_READ | GENERIC_WRITE, //DesiredAcces
0, NULL, //ShMode,SecAttrib
OPEN_EXISTING, //CrtnDistrib
0, NULL ); //Fl&Attrib,TemplFile

//f.CreateFile() zwraca INVALID_HANDLE_VALUE (-1) tzn. !nie otworzyła portu istniejącego portu COM14.

C:\Adam\Cpp\CppBuilder\000_RS232_2015\0ProgrWIII\wxDev\RS_1\rs_konsola_1.cpp In function 'int main()'::
39:24 C:\Adam\Cpp\CppBuilder\000_RS232_2015\0ProgrWIII\wxDev\RS_1\rs_konsola_1.cpp [Warning] '\C' [enabled by default]
Mam Windows7, IDE: wxDev-C++ v. build 7.4.2.569 .
   Chyba kompilator widzi !nieaktualną wersję funkcji WinAPI CreateFile() i trzeba dołączyć aktualne WinAPI, ale nie wiem jak to zrobić.

   Proszę o pomoc.
P-140102
maly
» 2015-11-14 09:44:55
"\\\\.\\COM14"
P-140103
Fireho
» 2015-11-14 10:34:21
W stałych tekstowych w C++ znaku
\
 używa się do wpisywania tam znaków, których normalnie się nie da poprzez tzw. sekwencje ucieczkowe. Np.
std::cout << "\"\"\"" << std::endl;
 skutkuje wypisaniem
"""
. Twój tekst
"\\.\COM14"
 wygląda w końcu tak:
\.COM14
. Aby do stałej wpisać znak
\
, należy użyć sekwencji
\\
.
P-140104
AdamS
Temat założony przez niniejszego użytkownika
Instalacja aktualnej biblioteki WinAPI w wxDev-C++
» 2015-11-16 12:36:08
Cześć.
Wieeelkie dzięki za pomoc i za wytłumaczenie mojego błędu.

Mam następny problem.
C/C++
// plik: pr1.cpp
#include <stdio.h>
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <cstring>
using namespace std;
//------------------------------------------------------------------------------
int main()
{
    char * arg1 =( char * ) "\\\\.\\";
    const char * portName = "COM22";
   
    strcat( arg1, portName ); //char * strcat( char * destination, const char * source );
    //cout <<" Arg1 == '" <<arg1<< "' \n";
   
    system( "PAUSE" );
    return 0;
}
Kompilator nie widzi żadnych błędów - Compilation succesful, lecz po uruchomieniu program pada - system wyświetla komunikat:
"Program przestał działać poprawnie z powodu wystąpienia problemu. System Windows zamknie program ..."
   Proszę o pomoc.
P-140204
Monika90
» 2015-11-16 12:47:25
Nie używaj strcat, użyj std::string.


Kompilator nie widzi żadnych błędów
Bo używając rzutowania na char* powiedziałeś mu żeby zignorował błędy.
P-140205
AdamS
Temat założony przez niniejszego użytkownika
Instalacja aktualnej biblioteki WinAPI w wxDev-C++
» 2015-11-17 07:38:32
Cześć.
Wszystko się zgadza w 100% - bardzo dziękuję za pomoc.
P-140265
AdamS
Temat założony przez niniejszego użytkownika
Pobranie info o portach COM w wxDevC++
» 2015-11-24 16:26:31
Cześć.
Przeglądałem internet,ale nie znalazłem nic na w/w temat.
Opis problemu:
Po zainstalowaniu sterownika i podłączeniu kabla USB z konwerterem USB-RS232, mój Windows7 tworzy wirtualny port COM widoczny w DeviceManager
np. USB Serial Port(COM21).
Jak programowo w wxDevC++ (ew. CodeBlocks) pobrać do aplikacji nr istniejącego portu wirtualnego np. COM21, który jest potrzebny do komunikacji z urządzeniem zewnętrznym.
Czy można to zrobić wykorzystująć np. WinAPI.
Na stronach Microsoftu pisze,że można to zrobić w VisualStudio wykorzystując WMI lub SetupAPI,ale w wxDevC++ kompilator wyrzuca mnóstwo błądów - chyba jest niezgodność w plikach *.h
Proszę o pomoc.
P-140708
« 1 »
  Strona 1 z 1