Hirdetés

2018. szeptember 26., szerda

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Visual c++ segítség kellene (téma lezárva)

Hozzászólások

(#1) shtml


shtml
(őstag)

Van egy eszközmeghajtóm, melynek saját, igen jól dokumentált API hívásai vannak. A telepítés OK, egy tesztprogrammal ellenőrizhetően működik. A meghajtóprogram a következőket tartalmazza:

meghajto.h
meghajto.dll
meghajto.sys
meghajto.lib
meghajto.inf

A kérdésem az, hogyan adhatom meg a C++ fordítónak, hol keresse a meghajtó saját API függvényeit. Jelenleg ugyanis ''unresolved external symbol'' hibával leáll a fordítás, amikor az API függvény meghívásához ér. A meghajto.h tartalmazza az API függvények prototípusát és a hozzájuk tartozó változók definícióját, de ebből ugye nem derül ki, hol keresse a függvényeket.

Sejtem, hogy talán a meghajto.lib lesz a megoldás, de a C++-hoz még nagyon láma vagyok, ki tud segíteni?

A szak­ember olyan barbár, akinek tudatlansága nem terjed ki min­denre. (Stanislaw Lem: Az Úr hangja)

(#2) shtml válasza shtml (#1) üzenetére


shtml
(őstag)

A program elején természetesen ott van az

#include ''meghajto.h''

sor.

A szak­ember olyan barbár, akinek tudatlansága nem terjed ki min­denre. (Stanislaw Lem: Az Úr hangja)

(#3) rog válasza shtml (#1) üzenetére


rog
(PH! kedvence)

a meghajto lib-et add hozzá a project-hez, az hiányzik neki.
ööö.. valahol a linker fülön van egy editbox ehez... (régen volt már, és nincs studiom kéznél, de hátha ennyi infó már elég..)

(#4) shtml válasza rog (#3) üzenetére


shtml
(őstag)

Nagyon köszönöm, ez kellett!!! A Project menüben Add to Project -> Files és ekkor feljön az ''Insert Files into Project'' ablak.

(Tudom, láma volt a kérdés, de ez életem első C++ programja, eddig csak assembly-ben szoktam programozni.)

A szak­ember olyan barbár, akinek tudatlansága nem terjed ki min­denre. (Stanislaw Lem: Az Úr hangja)

(#5) master bud


master bud
(fanatikus tag)

Halihó,

segítség kellene, remélem lesz valaki aki végigolvassa. A program rektifikáló oszlopok müködését szimulálja (számolja), konzolos és egy bemenő input.txt file-al dolgozik. Az eredményt egy output.txt-be nyomja ki. A furcsaság a következő:

Van egy objektumpéldány (neve StartProcess), ami a mainből van létrehozva. A konstruktorból elindítja a fő eljárását (Start) ami megnyitja az argumentumként kapott file-t (input.txt), megkeresi a számítási módra utaló parancsot és meghívja az azt kiszámoló eljárást. Ezután, a módtól függően elágazva kiszámol mindent, output file-t generál és kilép.

A Start eljárásban 5 féle számítási eljárás van, ezek mindegyike létrehoz 2-3 másik objektumpéldányt ami a számitáshoz kell. Például:

-ha számitási mód== bp : BP példány, GA példány, TE példány stb.
-ha számitási mód== hp : HP példány, GA példány, TE példány stb.

A nagybetűs osztályok módszer specifikus beolvasásokat, mértékegységkonverziókat stb. tartalmaznak.

Ha a fejlesztői környezetben a megfelelő számítási eljárásban beütöm például 'BP.' tagot, akkor automatikusan felugrik egy ablak, ahol kiválaszthatom a változókat, eljárásokat amiket a BP osztály tartalmaz. Ez nyilván egy kényelmi funkció.

Van viszont egy ugyanilyen eljárás, ahol egy TWR példányt hozok létre. Ha beütöm a 'TWR.' tagot nem ugrik fel semmi :F

Minden deklarálva van, a TWR osztály szerepel a ClassView-ban, eljárásaira klikkelve odaugrik a forrásban, befordítja stb. A program mégis fura dolgokat művel, debuggolom és eközben feltűnt ez a jelenség.

Kicseréltem a TWR nevet más nevekre, hátha valami foglalja a TWR-t :F , de semmi.

Továbbá ha rámegyek a nyíllal más osztályok példányneve fölé, akkor a buboréksúgó rendesen megjelenik, például ha rámegyek erre:

BP bub (filename) // a BP osztály bub példányának konstruktora

akkor a buboréksúgó ezt mutatja : BP bub (vagy bub BP már nem rémlik)

Na, ha a TWR-re megyek rá (ami elvileg tök ugyanilyen) akkor meg:

tower ... _cdecl TWR (filename) vagy ilyesmi.

A lényeg az, hogy nem ugyanolyan jellegű súgást kapok, és felugró kényelmi ablak sem jelenik meg a TWR esetében.

Nem vagyok egy VC++ guru, ez lenne a diplomamunkám, szóval minden segítséget NAGYRA értékelnék :)





~~G::alactic O::bservation D::evice~~

(#6) kircipeti


kircipeti
(senior tag)

Hellosztok!

Nem reg kezdtem el tanulni ezt a nyelvet, de elakadtam. Elegge kinos :((( Csak annyi lenne a kerdesem hogy mikent oldhato meg egy integer kiiratasa a kepernyore TextOut-al?

(#7) manfrika


manfrika
(újonc)

Helo!
Egy nagyon kezdő szintű visual c++-os vagyok.Segitségre lenne szükségem.
Meg szeretném kérdezni hogy hogy kell egy olyan programot irni
amelyben egy legördülő listából választva megjelenik a kiválasztott személy képe.Ha nics kép, akkor jelenjen meg egy X.
Tudom hogy nagyon amatőr program,legalábbis nektek akik tudtok programozni visual c++-ban.
Ha van hasonló programotok akkor lécci mküldjétek el nekem.Nagyon fontos lenne.
Előre is köszi: Manfréd

(#8) blaci947


blaci947
(újonc)

Sziasztok!

A problémám egy MFC programmal, és a WM_CHAR Windows-üzenettel adódott. Hiába adom hozzá az üzenettérképhez (ClassWizard-dal, a dialógusablak osztályához) a WM_CHAR üzenet kezelőfüggvényét (OnChar), ebbe beírtam egy
MessageBox(''Hello'');
utasítást, de hiába verem a billentyűzetet, nem ír ki semmit, nem fut le az OnChar függvény.

Nagyon hálás lennék, ha segítenétek (legalább elindulni), hogy hogy kell egy (dialógus alapú) windows-programban a billentyűzetről jövő üzeneteket kezelni...

Előre is köszönöm:
Laci

Az adataink olyanok, mint az egészségünk: addig vigyázzunk rájuk, amíg megvannak! !!!

(#9) RAM válasza manfrika (#7) üzenetére


RAM
(PH! addikt)

up

Csak tisztán

(#10) Miracle válasza manfrika (#7) üzenetére


Miracle
(senior tag)

hagyd a visual c++t es az MFCt a francba, tanulj c#ot es .NETet, annak van ertelme. MFC ratyi.

értelmező késziszótár :: rekurzió --> lásd : rekurzió

(#11) 9CS válasza RAM (#9) üzenetére


9CS
(senior tag)

Ha kell még itt van egy példa, nem túl jó és nem is tökéletes, de példa. :D [link] Visual C++ 2005 Express-el készült a project mappa van becsomagolva, önkitömörítős exe-be. Ha másért up, akkor mindegy.

'' - Tizenkettőt üt az óra, térjenek márrrrgghhhh... ''

(#12) Zsani 019


Zsani 019
(újonc)

hali. Tudna nekem valaki segíteni a dc++ magyarosításában? Nagyon megköszönném. :(

(#13) QuarK válasza Zsani 019 (#12) üzenetére


QuarK
(senior tag)

A DC++-nak külön topicja van: [link]. A magyar nyelvi fájlok pedig itt érhetők el: [link], itt a lap alján ''Attached Files'' címszó alatt le lehet tölteni a megfelelő verzióhoz őket. A letöltött ZIP tartalmát a ProgramFiles\DC++ (már ha ide van telepítve) könyvtárba kicsomagolod. Aztán File -> Settings -> Appearance -> Language file, Browse gomb, és itt megkeresed, amit kitömörítettél, OK, és kész is.

[Szerkesztve]

(#14) DeepDish


DeepDish
(őstag)

Udv!!

Visual c++ 6.0-ban tanulok programozni es segitseg kellene nekem tudtok e olyan konyvet ajanlani ami nagyon ertheto es elejetol kezdi es nem vag egybol a kozepebe.....? :F

(#15) RAM válasza DeepDish (#14) üzenetére


RAM
(PH! addikt)

#10 ;] :D

Csak tisztán

(#16) DeepDish válasza RAM (#15) üzenetére


DeepDish
(őstag)

De nekem ezkell suliba+progszig amen.............. :(((

(#17) Protezis


Protezis
(őstag)

Visual C++ 2005 Express Edition-nal szeretnék dc++ -t fordítani ( direct connect)
A compile.txt leírását követtem, de a _STL namespace még mindig gondot okoz fordításkor.

d:\programozas\dc\client\stdinc.h(104) : error C2871: '_STL' : a namespace with this name does not exist
A mappaszerkezet, ha segít (dosos karakterek!): [link]
Az STLportot előtte le kell egyáltalán fordítani, vagy nem? Előre is köszi

(#18) ftc


ftc
(PH! nagyúr)

Kis segitésg kellene:Van egy progi ami 2 gép közötti soros komunikáciot biztositja .Ha hyperterminálon van az egyik gép akkor hülyeségeket ir ki.Beirom az egész progit,ha valaki tud segitsen.

#include<stdio.h>
#include<windows.h>
#include<conio.h>
void menu(HANDLE hPort);
int chat(HANDLE hPort);
void set_port(HANDLE hPort);
void wiev(HANDLE hPort);
void time(HANDLE hPort);
void vysielanie(HANDLE hPort);
void primanie(HANDLE hPort);
bool IsKeyPressed(int virtualKey);

void main()
{
HANDLE hPort;
hPort = CreateFile(''COM1:'', GENERIC_READ | GENERIC_WRITE, 0,NULL,OPEN_EXISTING, 0, NULL);
if ( hPort == INVALID_HANDLE_VALUE )
printf(''Port sa neda otvorit\n'');
else
printf(''Port je otvoreny\n'');
time(hPort);
menu(hPort);
CloseHandle(hPort);
}

void menu(HANDLE hPort)
{
printf(''Manual: 1 - Chat 2 - Set port 3 - Actual set port 4 - Quit'');

while(1)
{
printf(''\n\nVolba?'');
switch (getch())
{
case '1':
chat(hPort); break;
case '2':
set_port(hPort); break;
case '3':
wiev(hPort); break;
case '4':
goto END; break;
default: printf(''\nZla volba!!'');break;
}
}
printf(''Koniec'');
END:;
}

void time(HANDLE hPort)
{
COMMTIMEOUTS timeouts;

timeouts.ReadIntervalTimeout = 20;
timeouts.ReadTotalTimeoutMultiplier = 10;
timeouts.ReadTotalTimeoutConstant = 100;
timeouts.WriteTotalTimeoutMultiplier = 10;
timeouts.ReadTotalTimeoutConstant = 100;

if (!SetCommTimeouts(hPort,&timeouts))
printf(''Chyba: Timeouty nenastavene.\n\n'');
// a asi exit...
else
printf(''OK,Timeouty nastavene \n\n'');
}
void set_port(HANDLE hPort)
{
DCB PortDCB;
PortDCB.DCBlength = sizeof(DCB);
GetCommState(hPort,&PortDCB);
printf(''\n\nSet port:'');
printf(''\nZadaj BaudRate: '');
scanf(''%d'',&PortDCB.BaudRate);
printf(''Zadaj ByteSize: '');
scanf(''%d'',&PortDCB.ByteSize);
printf(''Zadaj StopBits: '');
scanf(''%d'',&PortDCB.StopBits);
printf(''Zadaj Parity: '');
scanf(''%d'',&PortDCB.Parity);

if(!SetCommState(hPort,&PortDCB))
printf(''\nPort sa neda nakonfigurovat'');
else printf(''\nPort je nakonfigurovany\n'');
}

void wiev(HANDLE hPort)
{
DCB PortDCB;
PortDCB.DCBlength = sizeof(PortDCB);
GetCommState(hPort,&PortDCB);
printf(''\n\nActual set port:'');
printf(''\nBaudrate %d'',PortDCB.BaudRate);
printf(''\nByteSize %d'',PortDCB.ByteSize);
printf(''\nStopBits %d'',PortDCB.StopBits);
printf(''\nParity %d'',PortDCB.Parity);
printf(''\n'');
}

int chat(HANDLE hPort)
{
printf(''\n\nChat:\n'');
unsigned char Data;
PurgeComm(hPort,PURGE_TXCLEAR | PURGE_RXCLEAR);
DWORD d;
while(1)
{
Data=0;
ReadFile(hPort,&Data,1,&d,NULL);
if(Data==0 && IsKeyPressed(VK_SHIFT))
vysielanie(hPort);
if(Data!=0)
primanie(hPort);
//Data=0;
if (IsKeyPressed(VK_ESCAPE)) // Klavesa VK_ESCAPE konci program
{
printf(''Escape!! \n'');
getch();
return(1);
}
}
return(1);
}

void vysielanie(HANDLE hPort)
{
printf(''\nVysielas:\n'');
DWORD i=0,b=0;
DWORD pocet=0;
unsigned char posielam='a';
char a[40];
gets(a);
b=strlen(a);
WriteFile(hPort,&posielam,1, &pocet/*smernik*/,NULL);
Sleep(9);
while(i<(b+1))
{
posielam=a;
WriteFile(hPort,&posielam,1, &pocet/*smernik*/,NULL);
i++;
if( pocet != 1 ) printf(''\nSprava neodoslana!!'');
pocet=0;
}
}

void primanie(HANDLE hPort)
{
printf(''\nPrimam:\n'');
DWORD Pocet=0; // Počet prijatých dát
unsigned char Data,a[40]; // Sem ulož prijatý znak
DWORD i=0,j=0;
PurgeComm(hPort,PURGE_TXCLEAR | PURGE_RXCLEAR);
while(a[j]!='\0')
{
ReadFile(
hPort, // Handle portu, z ktorého čítame
&Data, // Pointer na buffer, kam ukladáme prijaté dáta
1, // Počet bytov, na ktoré čakáme
&Pocet, // Pointer na skutočný počet prijatých dát
NULL); // Musí byť NULL

// Funkcia ReadFile tu teraz čaká, až kým niečo
// nepríde, ale môže aj skončiť bez zachyteného znaku,
// ak medzitým vypršia timeouty.

a
=Data;
a[i+1]='\0';
i++;
j=i-1;
printf(''%c'',Data);
if( Pocet != Data ) // Ak počet prenesených dát nesúhlasí
printf(''\n Chyba: Sprava neprisla!!'');
Pocet=0;
}
printf(''\n'');
}
/* ************************************************************************** */
/* */
/* Funkcia IsKeyPressed(int virtualKey) */
/* Je prave stlacena klavesa virtualKey? 0 nie, 1 ano */
/* */
/* ************************************************************************** */

bool IsKeyPressed(int virtualKey)
{
return ((GetAsyncKeyState(virtualKey)&0x8000)!=0?true:false);
}

(#19) Spyx


Spyx
(tag)

Na hali.
Kis segítség kéne egy nagyon láma problémához
MFC-nél CString -et hogyan lehet int-é konvertálni normálisan?

CString str;
CString stop = _T(''*'');
int t;
t = strtol( ( char *) str.GetBuffer(10) , ( char **) stop.GetBuffer(2) , 10 );

és str -nek tegyük fel hogy van tartalma. legfeljebb egy 3 jegyű számot tartalmazhat
ez most annyit csinál hogy csak az első értékes számjegyet rakja be t-be
vagyis str = _T(''345'') -> t=3

please help
előre is kössz

Gyötrődő halálos játék: élet! Tőled én még mit kívánnék?!...

(#20) QuarK válasza Spyx (#19) üzenetére


QuarK
(senior tag)

Mi lenne, ha a radix paraméternek 10 helyett 0-t adnál meg? Esetleg (ezt még valamikor ki is próbálom):

char *str1 = new char[255];
sprintf( str1, ''%s'', str);
int t = atoi( str1);

[Szerkesztve]

Utána persze delete str1...

[Szerkesztve]

(#21) Spyx válasza QuarK (#20) üzenetére


Spyx
(tag)

a radix 2-32-ig vehet értéket. ez jelzi a számrendzsert ha jól értette,
az sprintf nem fogja megenni mert a CSTring str wchar_t* ként van reprezentálva.
Hogy miért használok mindenáron Cstring-et, hát egyszerű mert sok mindent kell tárolnom és egy CStringList-el a legegyszerűbb. (van neki serialize-ja meg mindene mai nekem jelen eseetben kell)

Gyötrődő halálos játék: élet! Tőled én még mit kívánnék?!...

(#22) QuarK válasza Spyx (#21) üzenetére


QuarK
(senior tag)

''a radix 2-32-ig vehet értéket. ez jelzi a számrendzsert ha jól értettem''

És ha én értettem jól, a 0 az autodetect. Érdemes kipróbálni; ha eddig nem tetted meg.

''mert a CSTring str wchar_t* ként van''

Öööö... Csak van valami mód, hogy sima ( char*)-ba konvertáld :F

[Szerkesztve]

(#23) Spyx válasza QuarK (#22) üzenetére


Spyx
(tag)

a PCXSTR operátor elvileg ezt csinálná (Cstring->char*) de nem nagyon akar működni a CString-re
egyébként most már csak kiváncsiságból hajtom a dolgot mert a programon változtattam azóta és már nem kell hozzá a CString->int konverzió. rájöttem hogy van egyszerűbb megoldás is :D
de azért bassza a csörömet hogy nem tudtad megoldani. ilyenkor örülnék egy jó kis java-s Integer.parseInt() -nek :D az mindig működött.

ja és a radix(harmadik paraméter) ha nulla akkor a String elején álló két karakterből próbálja kideríteni hogy milyen számrendszer. pl.: ox octális.

[Szerkesztve]

Gyötrődő halálos játék: élet! Tőled én még mit kívánnék?!...

(#24) Jester01 válasza Spyx (#23) üzenetére


Jester01
(PH! kedvence)

Most lehet, hogy tök félreértem a problémát, de nem a wcstol függvény kell neked?
(illetve a _tcstol makró)

Jester

(#25) gyuri666 válasza shtml (#1) üzenetére


gyuri666
(újonc)

Hello!
Azt akarom kérdezni, hogy esetleg hol lehet leszedni a Visual C++ akármelyik verzióját, vagy a C++ Builder-t???? A válaszokat nagyon-nagyon köccönöm!!!!!!!

(#26) Pax Satani


Pax Satani
(újonc)

Hi a visual c++ azt írja, ha 1 filenál nagyobb projektet akarok leforgatni,hogy lnk2005 * already defiined in *.obj, és sehogyan se tudom kiküszöböli, ötlet?

Ami tönkremehet, az tönkre is megy!

(#27) Pax Satani válasza gyuri666 (#25) üzenetére


Pax Satani
(újonc)

A Microsoft oldaláról ingyenesen letölthető az Express változat (az include-,library-fileok hiánya kiküszöbölhető a szintén ingyenes Platfrom SDK-val), de ezért az ingyenességért le kell mondanod pár dologról (pl. pluginek használata) ... De letölthető a 60 napos próbaverziója a Prof. változatnak. (Esetleg itt keress rá: isohunt.com vagy nforce.nl)

Ami tönkremehet, az tönkre is megy!

(#28) Pax Satani válasza Pax Satani (#27) üzenetére


Pax Satani
(újonc)

... Bocsánat, nem Platfrom, hanem Platform SDK ...

Ami tönkremehet, az tönkre is megy!

(#29) labu01wx


labu01wx
(tag)

Sziasztok!
Szeretnék elkezdeni Visual C++-ban programozni és érdekelne, hogy milyen tutorialokat ill. könyveket javasoltok? Programozásban haladó de a C nyelvekben abszolút kezdő vagyok.

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Visual c++ segítség kellene (téma lezárva)
Copyright © 2000-2018 PROHARDVER Informatikai Kft.