C/C++

cmake kérdés

Fórumok

sziasztok

a cmake target_link_libraries() parancsának van egy ilyen argumentuma, h general.
Mi van akkor, ha én egy olyan libraryt akarok linkelni a futtatható fájlomhoz, aminek az a neve, h general?!
ez szabályellenes? :)

kösz

[Megoldva] Qt, socket - üzenetek elakadása

Fórumok

Sziasztok!

A következő problémával szembesültem, amire nem sikerült megoldást találnom:

Van egy Qt-s szerveren és egy kliensem, melyek socketen keresztül kommunikálnak. Vannak olyan esetek, amikor a szerver egymás után több üzenetet küld egy kliensnek, tehát többször hívódik meg a QTcpSocket write metódusa. Ekkor csak az első üzenet jut el a klienshez. A waitForBytesWritten és a flush nem segített. A buffer kiürül, a write minden üzenet esetén annyival tér vissza, ahány byte az üzenet hossza, tehát elvileg elküldi, de a klienshez csak az első érkezik meg. Ami még érdekes: ha a kliens egy újabb kérést küld a szervernek, akkor a megfelelő válasz helyett az előzőleg elmaradt üzenetet fogadja a kliens, és az újabb üzenet várakozik valahol, és így tovább.

Találkozott már valaki hasonló problémával? Ha a QTcpSocket szerint üres a buffer, akkor hol tárolódhatnak még az elakadt üzenetek?

Kódrészlet:

Sever osztályban:

client->send("UZENET 1");
client->send("UZENET 2");

A send metódus:

void ClientThread::send(QString str)
{
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_3);
out << (quint16)0;
out << str;
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));

tcpSocket->write(block);
tcpSocket->waitForBytesWritten(-1);
}

Előre is köszönök minden választ!

nagyobb c++ kód struktúrálása

Fórumok

sziasztok!

pár hónapja kezdtem a C++-t, de már van egy >7000 soros diplomamunka-programom benne (sok header- és forrás-fájlba szétdarabolva). a gondom viszont az, h nem tanultam meg rendesen / nem találtam részletes infót, példákat arra, hogyan illik a nagyobb méretű kódokat struktúrálni:

- miket szokás külön .hpp/.cpp fájlokba tenni (minden class-t, összetartozó classokat, stb)
- mekkora egységekből csináljak libraryt (static vs dynamic?)
- mi a legelterjedtebb könyvtárstruktúra, ahogy a forrást struktúrálni szokás (kész statikus libraryket hova helyezni
benne, pl statikusan fordított, threaded fftw3)
- stb.

ezek a kérdések most jöttek elő hangsúlyosabban, h sima makefile-os forgatásról megpróbáltam elmozdulni cmake felé.
Tudtok olyan jó irodalmat ajánlani, ami foglalkozik a fenti kérdéskörökkel?

kösz

Prímszám keresés C-ben

Fórumok

Sziasztok!

Az alábbi programot szeretném optimalizálni, (azaz nem a hardvert fejleszteni) úgy hogy gyorsabban lefusson.

$ cat prim.c

$ gcc -Wall -O3 prim.c -o prim

$ time ./prim 1000000
DB: 1000000 PRIM: 15485863

real 0m14.426s
user 0m14.125s
sys 0m0.028s

Tudom, hogy néhány módszerrel lehetne még egy-két tizedet nyerni a dolgon, de nem ilyenre vágyom.

Van ötletetek, hogyan lehetne 10s alá menni? Esetleg más matematikai módszerrel, vagy valamilyen trükkel, netalán valamit nagyon elrontok?

Előre is köszi. :)

ps: Tudom, hogy 2^31 nagyságrendű prímnél elszállna a program, de jelenleg értelmes időn belül ezt megközelíteni sem tudom.

ps2: Az esetleges bemeneti argumentumhiba szándékosan nincs lekezelve.

ps3: Félreértések elkerülése végett a célom az, hogy mondjuk a 100 000 000. prímet megtaláljam, méghozzá gyorsan. :)

[UPDATE]
Volt végre tíz percem, s mivel elmúlt a másnaposságom, gyorsan megírtam a szitás módszerrel is. Egészen meglepődtem. :)

$cat prim2.c

$ gcc -Wall -O3 prim2.c -o prim2

$ time ./prim2 15485863
DB: 1000000 PRIM: 15485863

real 0m1.730s
user 0m1.616s
sys 0m0.036s

laptop fenyero kezelese nemi linux/c tanulas

Fórumok

Hi,
eddig igazabol ms platformon kodoltam es ott is inkabb adatbazis, dotnet(ui, wcf, wpf, wse).
Csinaltam kisebb c-s szervizeket is, linux ala, amik nem nagy tudasuak de jol mukodnek a mai napig.
--- ennyit rolam ---
A laptopom fenyerejenek alitasat nem tamogatja a gnome-s brightness applet. Ha jol latom a HAL -tol kerne le a video eszkozt es ezen keresztul alitana a fenyerot. No nekem ilyenem nincs. Nvidia videokartya van a gepemben. A smartdimmer eddig mindent megoldott, de szeretnem kicsit jobban elmelyiteni a linuxos kodolasi tapasztalataimat, es szeretnem ezt magam megirni. Nem tudom jol gondolom e, de ide kellene egy modult irni ami kezeli a laptopom spec. tulajdonagait. Ebben kernek segitseget, hogy hol is kezdjem es hogyan aljak neki!

minden segitseget elore is koszonok
szep napokat
zsomi

FS Amilo Pa1538

C# kép mentése, másolása könyvtárba és adatbázisba.

Fórumok

Sziasztok ismét!:)
naszóval a problémám a következő: Van egy openfiledialog, amivel megnyitok egy képet, ezt a képet rögtön meg is jelenítem egy pictureBox-ban, de a megjelenítéssel egy időben szeretném másolni a képet a debug/images-be, és van egy adatok.mdb ahova a másolt kép elérési útját, szeretném beírni, hogy a későbbiekben is meg tudjam nyitni onnan.
odáig már okés hogy megnyitja és elmenti a képet a debug/images-be... de az adatok.mdb-be semmi sem kerül.

és van egy hibaüzim is: már létező... a következő fájl nem található F:\adatok.mdb

itt másolom és mentem a képet.

string imagesDir = Application.StartupPath + @"\images";
string picture = null;
openFileDialog1.Filter = "Pictures|*.jpg;*.jpeg;*.bmp;*.png;*.gif";
DialogResult result = openFileDialog1.ShowDialog();

if (result == DialogResult.OK)
{
picture = openFileDialog1.FileName;
}
if (!Directory.Exists(imagesDir))
Directory.CreateDirectory(imagesDir);

string dest = imagesDir + "\\" + picture.Substring(picture.LastIndexOf(@"\") + 1);
if (picture != null)
{
File.Copy(picture, dest, true);
Image image = new Bitmap(picture);
pictureBox1.Image = image;
}
Ezután az adatbázisba megpróbálom elmenti
myCommand2.Parameters.Add("@kep", OleDbType.VarChar).Value = dest;

és máris van egy hibaüzim is: már létező... a következő fájl nem található F:\adatok.mdb

És akkor elkadtam.. segítsetek! Köszi!

[megoldva] C# NumericUpDown

Fórumok

Sziasztok!
Egy rövid kérdésem lenne.
Van NumericUpDown ojjjektumom. Azt szeretném elérni, hogy ha

if (reader.GetString(0) == "" && reader.GetString(1)== "")

feltétel teljesül akkor ne lehessen tovább növelni az értékét csak csökkenteni.
Nem igazán sikerült eddig rájönnöm hogyisvanez!
Előre is köszi!

Qt4 és activex

Fórumok

Sziasztok!

ActiveX kontrolokat kellene használnom és szeretném a feladathoz a Qt-t használni. Viszont az open source verzióban ugye nincs benne az ActiveQt. Tud valaki megoldást, vagy kénytelen leszek a visual studioval dolgozni?