Aktív témák
-
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 szakember olyan barbár, akinek tudatlansága nem terjed ki mindenre. (Stanislaw Lem: Az Úr hangja)
-
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 szakember olyan barbár, akinek tudatlansága nem terjed ki mindenre. (Stanislaw Lem: Az Úr hangja)
-
master bud
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
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 , 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~~
-
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? -
manfrika
csendes tag
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 -
blaci947
csendes tag
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:
LaciAz adataink olyanok, mint az egészségünk: addig vigyázzunk rájuk, amíg megvannak! !!!
-
-
Zsani 019
csendes tag
hali. Tudna nekem valaki segíteni a dc++ magyarosításában? Nagyon megköszönném.
-
QuarK
senior tag
válasz Zsani 019 #12 üzenetére
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] -
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.....? -
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 -
ftc
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);
} -
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összGyötrődő halálos játék: élet! Tőled én még mit kívánnék?!...
-
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?!...
-
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
[Szerkesztve] -
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
de azért bassza a csörömet hogy nem tudtad megoldani. ilyenkor örülnék egy jó kis java-s Integer.parseInt() -nek 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?!...
-
Pax Satani
csendes tag
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!
-
Pax Satani
csendes tag
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!
-
Pax Satani
csendes tag
válasz Pax Satani #27 üzenetére
... Bocsánat, nem Platfrom, hanem Platform SDK ...
Ami tönkremehet, az tönkre is megy!
-
labuwx
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.