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

String, dzielenie projektu na kilka plików.

Ostatnio zmodyfikowano 2015-04-07 17:04
Autor Wiadomość
elradziu
Temat założony przez niniejszego użytkownika
String, dzielenie projektu na kilka plików.
» 2015-04-05 20:58:24
Witam podzieliłem sobie projekt na kilka plików standardowo nagłówkowy (*.hpp, oraz dodatkowy plik zawierający funkcje *.cpp) U mnie występują 3 pliki:
main.cpp
zmienne.hpp
zmienne.cpp

I teraz tak w pliku nagłówkowym mam definicje oraz deklaracje zmiennych oraz stałych globalnych. Do momentu gdy nie wypełniam pliku zmienne.cpp to wszystko kompiluje się bez problemów. W momencie gdy w pliku zmienne zmienne.cpp wprowadzę linię:

C/C++
//Plik zmienne.cpp
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include <curl/curl.h>
#include <string.h>
#include "zmienne.hpp" // Problem występuje po dodaniu tej linii

//Reszta pliku jeszcze nie uzupełniona

Na daną chwilę ciała funkcji które mają się znaleźć w zmienne.cpp są zapisane w main.cpp.

Błąd jaki uzyskuję podczas kompilacji to:

||=== Build: Debug in WinApi (compiler: GNU GCC Compiler) ===|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|23|warning: deprecated conversion from string constant to 'LPSTR {aka char*}' [-Wwrite-strings]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|24|warning: deprecated conversion from string constant to 'LPSTR {aka char*}' [-Wwrite-strings]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|32|error: 'string' does not name a type|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|33|error: 'string' does not name a type|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|34|error: 'string' does not name a type|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|35|error: 'string' does not name a type|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|36|error: 'string' does not name a type|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|37|error: 'string' does not name a type|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|38|error: 'string' does not name a type|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|39|error: 'string' does not name a type|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|43|error: 'string' was not declared in this scope|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|44|error: variable or field 'sygnal' declared void|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|44|error: 'string' was not declared in this scope|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|45|error: variable or field 'wylaczP' declared void|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|45|error: 'string' was not declared in this scope|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|45|error: 'string' was not declared in this scope|
||=== Build failed: 14 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|


Miał ktoś podobny problem z stringami i znalazł jakieś rozwiązanie? Bo dodawanie w plikach hpp czy zmienne.cpp linii:
using namespace std;
nic nie zmienia.


P-130217
Brunon3
» 2015-04-05 21:19:46
Pokaż te dwa pliki.

-BD.
P-130218
Monika90
» 2015-04-05 21:45:05
użycie typu string wymaga
#include <string>


w pliku nagłówkowym mam definicje oraz deklaracje zmiennych
nie dawaj definicji zmiennych do pliku nagłówkowego, w pliku nagłówkowym powinny być tylko deklaracje zmiennych.
P-130221
Brunon3
» 2015-04-05 21:55:42
Czyli w .h
extern int a;
, a w .cpp
int a = 4;
 (na przykład).

-BD.
P-130223
elradziu
Temat założony przez niniejszego użytkownika
» 2015-04-06 12:53:01
Wstawiam zawartość plików:

C/C++
//Plik zmienne.hpp
#ifndef ZMIENNE_HPP_INCLUDED
#define ZMIENNE_HPP_INCLUDED
using namespace std;
//Definicje przycisków
#define ID_PRZYCISK1 501
#define ID_PRZYCISK2 502
#define ID_PRZYCISK3 503
#define ID_PRZYCISK4 504
#define ID_PRZYCISK5 505
#define ID_PRZYCISK6 506
#define ID_PRZYCISK7 507
#define ID_PRZYCISK8 508
#define ME_USTAWIENIA 509
#define ME_ZAKONCZ   510



//Zmienne:
int czas = 3; //Czas podawania sygna³u (trzymania przekaŸnika)
int stanL = 1; //1 - prom w³¹czony
int stanB = 1; //1 - prom w³¹czony
//sta³e WinApi
LPSTR NazwaKlasy = "Klasa Okienka";
LPSTR Ustawienia = "Ustawienia";
MSG Komunikat;
HWND hwnd;
HWND hwnd2;
CURL * curl;
CURLcode res;
clock_t odliczanie;
//Dane modu³u
string adres = "http://192.168.1.121/";
string holding = "Pio?sw=pa0&a=";
string B_bieg = "Pio?sw=pa1&a=";
string B_stop = "Pio?sw=pa2&a=";
string B_klucz = "Pio?sw=pa3&a=";
string L_bieg = "Pio?sw=pa4&a=";
string L_stop = "Pio?sw=pa5&a=";
string L_klucz = "Pio?sw=pa6&a=";


//Funkcje:
bool wyslij_r( string serwer );
void sygnal( string dane );
void wylaczP( string dane, string prom );

LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
LRESULT CALLBACK WndProcChild( HWND hwnd2, UINT msg, WPARAM wParam, LPARAM lParam );

//Na daną chwilę ciała powyższych funkcji znajdują się w pliku main.c docelowo mają się
//znaleźć w zmienne.cpp

#endif // ZMIENNE_HPP_INCLUDED

C/C++
//Plik zmienne.cpp
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include <curl/curl.h>
#include <string>

#include "zmienne.hpp" //Bez tej linii wszystko się ładnie kompiluje i działa

Do kolegi wyżej. Czy do projektu dodam bibliotekę string czy string.h itd. nic to nie zmienia :/ Ciągle błędy :/


P-130233
Brunon3
» 2015-04-06 12:56:44
//Zmienne:

Przed każdą zmienną w .h daj
extern
 a to co aktualnie masz w .h w "//Zmienne:" przekopiuj w czystej postaci (bez
extern
) do .cpp.

-BD.
P-130236
elradziu
Temat założony przez niniejszego użytkownika
» 2015-04-06 14:08:54
Brunon3 zrobiłem jak napisałeś, tylko teraz wyrzuca inne błędy :/


||=== Build: Debug in WinApi (compiler: GNU GCC Compiler) ===|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|23|warning: deprecated conversion from string constant to 'LPSTR {aka char*}' [-Wwrite-strings]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|24|warning: deprecated conversion from string constant to 'LPSTR {aka char*}' [-Wwrite-strings]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|32|warning: 'adres' initialized and declared 'extern' [enabled by default]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|33|warning: 'holding' initialized and declared 'extern' [enabled by default]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|34|warning: 'B_bieg' initialized and declared 'extern' [enabled by default]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|35|warning: 'B_stop' initialized and declared 'extern' [enabled by default]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|36|warning: 'B_klucz' initialized and declared 'extern' [enabled by default]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|37|warning: 'L_bieg' initialized and declared 'extern' [enabled by default]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|38|warning: 'L_stop' initialized and declared 'extern' [enabled by default]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.hpp|39|warning: 'L_klucz' initialized and declared 'extern' [enabled by default]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp||In function 'int WinMain(HINSTANCE, HINSTANCE, LPSTR, int)':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|78|warning: variable 'g_BHB' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|81|warning: variable 'g_BHL' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|84|warning: variable 'g_ALARM' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|89|warning: variable 'B_hPrzycisk1' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|90|warning: variable 'B_hPrzycisk2' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|91|warning: variable 'B_hPrzycisk3' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|92|warning: variable 'Child_Zakoncz' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|104|warning: variable 'L_hPrzycisk1' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|105|warning: variable 'L_hPrzycisk2' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|106|warning: variable 'L_hPrzycisk3' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|114|warning: variable 'A_hPrzycisk1' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|115|warning: variable 'A_hPrzycisk2' set but not used [-Wunused-but-set-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp||In function 'bool wyslij_r(std::string)':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|230|warning: unused variable 'try_ask' [-Wunused-variable]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|231|warning: label 'START_ASK' defined but not used [-Wunused-label]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp||In function 'void sygnal(std::string)':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|254|warning: label 'START_ASK' defined but not used [-Wunused-label]|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp||In function 'bool wyslij_r(std::string)':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|249|warning: control reaches end of non-void function [-Wreturn-type]|
obj\Debug\zmienne.o||In function `_tcf_0':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.cpp|9|multiple definition of `adres'|
obj\Debug\program.o:C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|17|first defined here|
obj\Debug\zmienne.o||In function `_tcf_0':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.cpp|9|multiple definition of `holding'|
obj\Debug\program.o:C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|17|first defined here|
obj\Debug\zmienne.o||In function `_tcf_0':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.cpp|9|multiple definition of `B_bieg'|
obj\Debug\program.o:C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|17|first defined here|
obj\Debug\zmienne.o||In function `_tcf_0':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.cpp|9|multiple definition of `B_stop'|
obj\Debug\program.o:C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|17|first defined here|
obj\Debug\zmienne.o||In function `_tcf_0':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.cpp|9|multiple definition of `B_klucz'|
obj\Debug\program.o:C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|17|first defined here|
obj\Debug\zmienne.o||In function `_tcf_1':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.cpp|10|multiple definition of `L_bieg'|
obj\Debug\program.o:C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|22|first defined here|
obj\Debug\zmienne.o||In function `_tcf_1':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.cpp|10|multiple definition of `L_stop'|
obj\Debug\program.o:C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|22|first defined here|
obj\Debug\zmienne.o||In function `_tcf_1':|
C:\Users\Radek\Documents\Code Blocks projects\WinApi\zmienne.cpp|10|multiple definition of `L_klucz'|
obj\Debug\program.o:C:\Users\Radek\Documents\Code Blocks projects\WinApi\program.cpp|22|first defined here|
||=== Build failed: 16 error(s), 26 warning(s) (0 minute(s), 2 second(s)) ===|
P-130248
SeaMonster131
» 2015-04-06 14:34:08
Coś wydaje mi się, że nie zrobiłeś tak jak on ci podpowiedział.
Czyli w .h
extern int a;
, a w .cpp
int a = 4;
 (na przykład).

Pokaż aktualny kod.
P-130250
« 1 » 2
  Strona 1 z 2 Następna strona