windows.1pkaca,
U Borland-ovoj OWL 2.0 biblioteci postoji klasa TDib koja
treba da omoguci laksi rad sa *.bmp slikama. Kada se napravi objekat
te klase onda se podacima, odnosno nizu bita, koji opisuju
sliku moze pristupiti sa funkcijom clanicom:
void HUGE* GetBits() { return Bits; }
Kada se koristi BMP slika sa 8 bitova ( 256 boja ) onda se sa gornjom
funkcijom dobija HUGE pointer na niz bajtova pri cemu svaki bajt
predstavlja indeks u paleti boja. Paleta boja se dobija sa funkcijom
clanicom:
TRgbQuad far* GetColors() {return (TRgbQad far*)Info->bmiColors; }
pri cemu u niz boja sadrzi najvise 256 elemenata ( boja).
Kako sada na osnovu x i y koordinate tacke u slici naci, koristeci
gornje podatke, boju tacke?
Pozdrav, Nenad
.P.S. Ekvivalentno pitanje sta se desava kada na HUGE pointer dodam
long vrednost da li se vrsi normalizacija pointera pri sabiranju
ili ne?
windows.3.obj,
-> #1, pkaca> pri cemu u niz boja sadrzi najvise 256 elemenata ( boja).
> Kako sada na osnovu x i y koordinate tacke u slici naci, koristeci
> gornje podatke, boju tacke?
Organizaciju bafera na koji si "dobio" pointer sa GetBits() opisana je u API
Helpu. Ukratko, kada se radi sa 256 boja, bafer je organizovan kao niz
sken-linija u kojima svakoj tački odgovara jedan bajt. Postoji dve
specifičnosti:
- Sken linije se ređaju od dole na gore (a ne obratno, kako bi bilo prirodno).
- Ukoliko broj tačaka po horizontali nije deljiv sa 4, proširuje se do
najvećeg broja deljivog sa 4. Na primer, ako je slika široka 5 tačaka, svaka
sken linija zauzimaće 8 bajtova.
> .P.S. Ekvivalentno pitanje sta se desava kada na HUGE pointer dodam
> long vrednost da li se vrsi normalizacija pointera pri sabiranju
> ili ne?
Normalizacija pointera se vrši "posle" svake izmene vrednosti pointera. Kažem
"posle" zato što se normalizacija zapravo vrši prilikom same operacije nad
pointerom (npr. dodavanje DWORD-a na pointer). U Borland-ovim C kompajlerima
pointeri su u svakom trenutku normalizovani. Ako huge pointer pokazuje na
BYTE-ove, pointer možeš tretirati gotovo isto kao i običan FAR pointer na
BYTE.
Pozdrav,
Obrad
windows.4aleck,
reply na pc.prog.4 3.304
>> Ne da nije, nego je uvek string. ;) Vrednost TextBox.Text je _uvek_ tipa
Biće da imam još dosta da čitam po helpu,ali mi nije jasno...U dotični
textbox unosim broj i to se obrađuje u proceduri KeyPress čiji argument
je Keyascii as Integer.Kad unesem broj i pritisnem ENTER on to preuzima
i predaje Select Case selekciji gde ima
Select Case textbox.text
Case 15 to 18 <------- na ovom mestu mi ne prijavi
grešku kad unesem broj ,ali ako unesem recimo ps,on vrišti Type Mismatch!
Pošto broj i treba da bude unet,treba mi provera pre selekcije šta je
uneto.Kako se to radi?
p.s. Tek tri dana radim sa VB-om,tako da još uvek nemam pojma šta je
Masked Edit:(.
windows.5jovca.car,
-> #4, aleck/* textbox unosim broj i to se obrađuje u proceduri KeyPress čiji argument
/* i predaje Select Case selekciji gde ima
/*
/* Select Case textbox.text
/* Case 15 to 18 <------- na ovom mestu mi ne
Uh. Za početak, batali Keypress i koristi Change. Kao drugo, ovo gore nema
šanse da radi. Argument KeyAscii dobija _ASCII_vrednost_ pritisnutog
tastera, što znači da za pritisnuto 1 imaš KeyAscii=49, za 2 je 50, etc.
Btw, KeyPress nema dodira sa vrednošću Text promenljive.
Opiši šta hoćeš da ti radi taj deo programa. Mislim da ti neće trebati ni
Change.
/* je Keyascii as Integer.Kad unesem broj i pritisnem ENTER on to preuzima
^^^^^^^^^^^^^^^
Ovo ti je ključna greška u razmišljanju! KeyPress procedura se aktivira čim
pritisneš prvi taster. Znači, ako unosiš 123<Enter>, KeyPress će zasebno
procesirati 1, pa 2, pa 3, pa <Enter>. Nije bre ovo Clipper ili Pascal! ;)
/* p.s. Tek tri dana radim sa VB-om,tako da još uvek nemam pojma
/* šta je Masked Edit:(.
Pretpostavljam da koristiš Professional Edition. Startuj Professional Demo,
i u meniju 'Professional Edition' odaberi 'Masked Edit Control'. Lepo je
objašnjeno šta je Masked Edit. Kad si već tu, pogledaj mogućnosti i ostalih
kontrola. Onda uđi u VB, klikni na taster u toolboxu ovog izgleda:
┌───┐
│##││
└───┘
i pritisni F1. Toliko. :)
windows.6aleck,
-> #5, jovca.car>> Uh. Za početak, batali Keypress i koristi Change. Kao drugo, ovo gore nema
>> šanse da radi. Argument KeyAscii dobija _ASCII_vrednost_ pritisnutog
Kako bre nema šanse?!Keyascii mi treba samo da znam kad je gotov unos,a
prava obrada je sa unetim tekstom,koji uzmem sa textbox.text.
U stvari...sad čitam moju poruku ponovo...izvini,prenaglasio sam značaj
KeyPress u dotičnom problemu.Mlad i neiskusan,šta ćeš:)...
>> Opiši šta hoćeš da ti radi taj deo programa. Mislim da ti neće trebati ni
>> Change.
Vidi:unosim broj i propustim ga kroz Select Case.U zavisnosti od broja
(od 15 do 18,od 19 do 23,od 23 do 29) to izaziva štampanje odgovarajućeg
teksta u drugom textboxu.I TO RADI!!Unesem lepo 23 on to pokupi,baci na
case i izađe pravi tekst.Kad unesem bs umesto tog 23...Beep:Type mismatch!
Eto toliko.
p.s. Jeste Professional Edition.Hvala za savet,videću već koliko sutra
(sada je kasno...mora da se uči nešto drugo=ispiti).
windows.7jovca.car,
-> #6, aleck/* Kako bre nema šanse?!Keyascii mi treba samo da znam kad je gotov unos,a
/* prava obrada je sa unetim tekstom,koji uzmem sa textbox.text.
Sorry, nisam razumeo šta hoćeš da uradiš. Batali Change i koristi KeyPress.
O:)
/* teksta u drugom textboxu.I TO RADI!!Unesem lepo 23 on to pokupi,baci na
/* case i izađe pravi tekst.Kad unesem bs umesto tog 23...Beep:Type
^^
BS kao "bs", ili BS kao BackSpace?? :) U svakom slučaju, ne znam zašto ti
javlja Type Mismatch. Kako ti ide cela ta procedura? Ono malo koda što si
poslao mi ne govori previše. Uporedi sa ovim (radilo iz cuga - i za brojeve,
i za slova, i za Backspace):
Sub Text1_KeyPress (KeyAscii As Integer)
If KeyAscii = 13 Then
Select Case Val(Text1.Text)
Case 1
Label1.Caption = "Uneo si 1"
Case 2
Label1.Caption = "Uneo si 2"
Case 3
Label1.Caption = "Uneo si 3"
Case Else
Label1.Caption = "RTFM, idiote!"
End Select
End If
End Sub
windows.8aleck,
-> #7, jovca.car>> BS kao "bs", ili BS kao BackSpace?? :) U svakom slučaju, ne znam zašto ti
Uf,Murphy na delu...gde pogodih baš ta dva slova...ono prvo je u pitanju.
Inače onaj uslov radi posao.Svaka čast.
Thanks a lot!
Acika.
windows.9anastazia,
Potrebna mi je pomoč!
Do sada sam pisao Windows programe (u BC++) koji su radili sa
mojim "motorom" za upravljanje bazom podataka. Taj "motor" je bio veoma
proste koncepcije sa desetak onih najosnovnijih funkcija. To funkcijoniše
veoma lepo na jednom računaru (barem mi se niko do sada nije žalio na neku
nepravilnost u radu), ali sada imam podrebu da moji programi rade na više
računara, i da format zapisa baze bude u nekom poznatom formatu
(*.db, *.dbf), što mi i stvara problem zbog koga se i javljam.
Moji dosadašnji programi rade lepo u merži dok se ažurira samo na
jednom računaru! :)). Ali taj moj format nije kompatabilan ni sa jednim
poznatim formatom zapisa i nema nikakvih funkcija za rad u mreži,
zaključavanje slogova i tmsl.
Probao sam nekoliko drugih motora kao što su Paradox, i Code Base,
ali prvi nisam uspeo naterati da indeksira kako ja hoču i pravi mi probleme
sa novom 4.2 verzijom BC++. A drugi pošto je priatska verzija, pati od
nedokumentovanosti (ako ste pomislili na onu narodnu htede Gaša kuvar biti
al mu lonci smrde, prevarili ste se jer sam se dobro namučio oko oba
programa).
E sad kako mi možete pomoči;
1) Otkriti mi tajnu strukture zapisa DBF fajla. (format indeksa je poželjan)
staviti akcenat na zapis BCD brojeva.
2) Takođe otkriti tajnu rada u mreži, dali se recimo neki slog zaključava
pomoču nekog fleg-a u samom slogu, ili je u pitanju nešto drugo.
3) Ukoliko imate neku literaturu koja govori o gore navedenim stavkama,
preporučite mi je, ili mi je prodajte.
4) Video sam da MS Office instalira neke ODBC drajvere ali nisam
uspeo da ih programski iskoristim, takođe ako je neko u tome uspeo zmolio
bih ga da mi pomogne, kako to da povežem sa BC++.
5) Ukoliko imate neke vaše rutine za upravljanje bazom, a koji zadovoljavaju
gore navedene kriterijume (rade pod mrežom i Windows-om, u DBF formatu su,
indeksiraju po proizvoljnom rasporedu i lepo su dokumentovane),
a voljni ste da ih stavite u javno vlsaništvo ili da ih prodate.
6) Ako je neko uspeo da Paradox engine (verziju za Windows)
natera da sortira po recimo 1250 CP, neka otkrije trik.
Odgovorom na ova moja postavljena pitanja sigurno čete pomoči
mnogima koji žele ovim da se bave.
windows.10vlador,
-> #9, anastazia> 1) Otkriti mi tajnu strukture zapisa DBF fajla. (format indeksa je
> poželjan) staviti akcenat na zapis BCD brojeva.
Imam ja strukturu DBF fajla (dBase III), ali ne i indeksnih fajlova, tako
da je mala korist od toga. Ako treba viči pa ću ti poslati. Predpostavljam
da baza mora da bude sortirana i u drugim aplikacijama, pa rešenje sa
SortedCollection otpada.
> 2) Takođe otkriti tajnu rada u mreži, dali se recimo neki slog zaključava
> pomoču nekog fleg-a u samom slogu, ili je u pitanju nešto drugo.
Načinom zaključavanja sloga direktim menjanjem baze nećeš mnogo (ništa)
postići. Bolje je to rešiti funkcijama koje su ugrađene u sam C. To su
SOpen i Locking, ako se dobro sećam. Sa SOpen otvaraš fajl na željeni način
(sa pristupom za čitanje, upis ili i jedno i drugo, i zabranom istih), a sa
Locking funkcijom zaključavaš određeni deo datoteke (od bajta tog_i_tog
toliko bajtova). Pogledaj sintaksu pomenutih funkcija - ja se ne sećam. Ja
sam svojevremeno napravio ove dve funkcije (malo modifikovane) i za Pascal,
pa ako nekom treba...
> 4) Video sam da MS Office instalira neke ODBC drajvere ali nisam
> uspeo da ih programski iskoristim, takođe ako je neko u tome uspeo zmolio
> bih ga da mi pomogne, kako to da povežem sa BC++.
E, ovo bi bilo zaista fino.
> 6) Ako je neko uspeo da Paradox engine (verziju za Windows)
> natera da sortira po recimo 1250 CP, neka otkrije trik.
Pitanje za ostale: da li Paradox Engine koristi legalne Windowsove
funkcije, odnosno da li će sortiranje lepo raditi sa .objovim SLDom?
---
■ VLADOR ■ Ovako lep oktobarski dan nismo imali celog avgusta.
windows.11ikordic,
-> #9, anastaziaRE: Rad u mreži
=> 1) Otkriti mi tajnu strukture zapisa DBF fajla. (format indeksa je
=> poželjan) staviti akcenat na zapis BCD brojeva.
Bilo već više puta, poslednji put je ndragan to prekucao negde u
PC.PROG.4:baze.podataka. Listing potiče iz knjige "Clipper 5 - Vodič za
programere" by Rick Spence u izdanju Mikro Knjige. O istom trošku ...
=> 3) Ukoliko imate neku literaturu koja govori o gore navedenim
=> stavkama, preporučite mi je, ili mi je prodajte.
... ti je preporučena pomenuta knjiga za te i neke druge teme. Iako se
prvenstveno bavi Clipper-om, mogu ti koristiti poglavlja o mrežnom radu,
strukture .DBF, .NTX i ostalih datoteka, itd.
windows.12dvesic,
-> #11, ikordic>> Bilo već više puta, poslednji put je ndragan to prekucao negde
>> u PC.PROG.4:baze.podataka. Listing potiče iz knjige "Clipper 5
>> - Vodič za programere" by Rick Spence u izdanju Mikro Knjige.
>> O istom trošku ...
Takođe preporučujem "Clipper 5.2 programiranje u mreži", Boot &
Lief, izdanje Mikro knjige.
windows.13bdjuricic,
Da li neko ima iskustva sa 32-bit dodatkom za W4W iz Seazmovog W:\SYSTEM
direktorijuma (WIN32S.A01-04), tj. da li se isplati potrositi te sate na
download? Imam 486DX66 sa VLB. Hvala za hint.
Bogdan
windows.14djelovic,
-> #13, bdjuricic> Da li neko ima iskustva sa 32-bit dodatkom za W4W iz Seazmovog W:\SYSTE
> direktorijuma (WIN32S.A01-04), tj. da li se isplati potrositi te sate n
> download? Imam 486DX66 sa VLB. Hvala za hint
Za sada se ne isplati. Win32s ('s' od subset) omogućava izvršavanje
32-bitnih Windows aplikacija, bitno brže nego što je to slučaj sa 16-bitnim
aplikacijama. Na žalost, najveći broj aplikacija je pisan bez te ekstenzije na
umu, tako da njen DL nema mnogo svrhe.
windows.15zormi,
-> #13, bdjuricic* Da li neko ima iskustva sa 32-bit dodatkom za W4W iz Seazmovog W:ĐSYSTEM
* direktorijuma (WIN32S.A01-04), tj. da li se isplati potrositi te sate na
* download?
Ako nemaš aplikaciju pisanu za 32-bitni Windows API onda ti ne treba.
Obično uz takve i dobiješ Win32s pa opet ga ne treba skidati. Od svih
programa koje imam koristi ga samo Borland C++ 4.0 kod kompajliranja
za NT.
windows.16anastazia,
-> #10, vlador>Načinom zaključavanja sloga direktim menjanjem baze nećeš mnogo (ništa)
>postići. Bolje je to rešiti funkcijama koje su ugrađene u sam C. To su
>SOpen i Locking, ako se dobro sećam.
Hvala poštovani kolega, što sete mi pomogli, i ukazali na put kojim
ču dalje. Usput sam otkrio da su funkcije iz 32-bitnog API-a, LockFile i
UnlockFile adekvatnije, pošto sam dosad koristio API funkcije za manipulaciju
fajlom. ("The UnlockFile function unlocks a region in an open file. Unlocking a
region enables other processes
to access the region. The LockFile function locks a region in an open file.
Locking a region prevents other processes from
accessing the region." Ovo je iz Help-a).
>Imam ja strukturu DBF fajla (dBase III), ali ne i indeksnih fajlova, tako
>da je mala korist od toga. Ako treba viči pa ću ti poslati.
To bi me veoma obradovalo, ali molm te pošaljite to u ovu
konferenciju kako bi i drugi imali koristi, a ne na mail.
>Pitanje za ostale: da li Paradox Engine koristi legalne Windowsove
>funkcije, odnosno da li će sortiranje lepo raditi sa .objovim SLDom?
Moguče je a evo i izvoda iz njegovog include fajla, pxengine.h,
to sam malopre otkrio. S tim što ako se koristi BC++ 4.2 Paradox ume lepo da
zaglavi računar, ne znam zašto. Ako neko ima rešenje neka se javi.
//----------------------------------------------------------------------
// prototypes for engine functions
// declarations of sort order tables, used in PXSetDefaults
#ifdef WINDOWS
# define SortOrderAscii 'a' // ASCII sort order
# define SortOrderIntl 'i' // international sort order
# define SortOrderNorDan 'n' // Norwegian/Danish sort order
# define SortOrderSwedFin 's' // Swedish/Finnish sort order
# define SortOrderNorDan4 'd' // Norwegian/Danish sort order for Paradox 4.0
#else // DOS
extern char far * pascal far SortOrderAscii; // ASCII sort order
extern char far * pascal far SortOrderIntl; // international sort order
extern char far * pascal far SortOrderNorDan; // Norwegian/Danish sort order
extern char far * pascal far SortOrderSwedFin;// Swedish/Finnish sort order
extern char far * pascal far SortOrderNorDan4;// Norwegian/Danish sort order
// for Paradox 4.0
#endif // DOS
windows.17aleck,
-> #12, dvesic>> Takođe preporučujem "Clipper 5.2 programiranje u mreži", Boot &
>> Lief, izdanje Mikro knjige.
Uzgred rečeno...nisam kupio neku progr.knjigu već duže vreme i kad sam
svratio do CET-a da vidim šta ima,zapanjim se kako MikroKnjiga ima strava
urađene knjige.Ono je brate na nivou onih stranih izdanja koja sam video
na Sajmu(sa CD-om unutra).Ljudima svaka čast.
p.s.Sorry na digresiji od teme.
windows.18vlador,
-> #16, anastazia> To bi me veoma obradovalo, ali molm te pošaljite to u ovu
> konferenciju kako bi i drugi imali koristi, a ne na mail.
Evo ga.
===========================================================
dBASE - File Header Structure (dBASE II)
Offset Size Description
00 byte dBASE version number 02h=dBASE II
01 word number of data records in file
03 byte month of last update
04 byte day of last update
05 byte year of last update
06 word size of each data record
08 512bytes field descriptors (see below)
520 byte 0Dh if all 32 field descriptors used; otherwise 00h
- dBASE II file header has a fixed size of 521 bytes
DBASE - File header structure (DBASE III)
Offset Size Description
00 byte dBASE vers num 03h=dBASE III w/o .DBT
83h=dBASE III w .DBT
01 byte year of last update
02 byte month of last update
03 byte day of last update
04 dword long int number of data records in file
08 word header structure length
10 word data record length
12 20bytes version 1.0 reserved data space
32-n 32bytes ea. field descriptors (see below)
n+1 byte 0dH field terminator.
- unlike dBASE II, dBASE III has a variable length header
dBASE - Field Descriptors
-------------------------
dBASE II Field Descriptors (header contains 32 FDs)
Offset Size Description
00 11bytes null terminated field name string, 0Dh as first
byte indicates end of FDs
11 byte data type, Char/Num/Logical (C,N,L)
12 byte field length
13 word field data address, (set in memory)
15 byte number of decimal places
dBASE III Field Descriptors (FD count varies):
Offset Size Description
00 11bytes null terminated field name string
11 byte data type, Char/Num/Logical/Date/Memo
12 dword long int field data address, (set in memory)
16 byte field length
17 byte number of decimal places
18 14bytes version 1.00 reserved data area
================================================================
---
■ VLADOR ■ If you can't change YOURSELF, than change the WORLD!
windows.19ppekovic,
-> #15, zormi>> Ako nemaš aplikaciju pisanu za 32-bitni Windows API onda ti ne treba.
>> Obično uz takve i dobiješ Win32s pa opet ga ne treba skidati. Od svih
>> programa koje imam koristi ga samo Borland C++ 4.0 kod kompajliranja
>> za NT.
Jedini koji traži win32s a koji sam video je Mosaic.
Paya
windows.20djelovic,
Može li neko ko ima ftp da sa ftp.uu.net (137.39.1.9) dovuče ODBC SDK iz
direktorijuma /vendors/microsoft? U tom direktorijumu Microsoft inače ostavlja
programske primere, raznu dokumentaciju i sl., pa ne bi bilo loše da se ovde
ostavi i spisak svih fajlova koji se tamo nalaze.
windows.21.obj,
-> #20, djelovic> Moze li neko ko ima ftp da sa ftp.uu.net (137.39.1.9) dovuce ODBC SDK iz
> direktorijuma /vendors/microsoft? U tom direktorijumu Microsoft inace
> ostavlja programske primere, raznu dokumentaciju i sl., pa ne bi bilo
> lose da se ovde ostavi i spisak svih fajlova koji se tamo nalaze.
ODBC SDK (barem verzija 2.0) je malo prevelik za skidanje (velik je oko 5 MB),
a i možeš "svuda" da ga nađeš...
Pozdrav,
Obrad
windows.22djelovic,
Može li ko da pošalje BWCC.DLL iz paketa BC++ 4.0? Glupavi Quattro Pro mi
je preko te datoteke snimio staru verziju, i sada mi Resource Workshop javlja
da mu treba BWCC.DLL 2.0 i odbija da radi :(.
windows.23calex,
-> #22, djelovic<!> Može li ko da pošalje BWCC.DLL iz paketa BC++ 4.0? Glupavi Quattro Pro
Može.
b.zipwindows.24omega,
-> #22, djelovicŢ Moze li ko da posalje BWCC.DLL iz paketa BC++ 4.0?
E kad smo vec kod nje, da li svi win programi napravljeni u BC
traze bwcc.dll?
windows.25djelovic,
-> #24, omega> E kad smo vec kod nje, da li svi win programi napravljeni u BC
> traze bwcc.dll?
Ne. BC++ 4.0 ti daje izbor:
1. Plain old klasični Windows dijalozi,
2. BWCC dijalozi,
3. 3D dijalozi.
BWCC dijalozi najbolje izgledaju ali zahtevaju i najviše rada dok se
nacrtaju sličice u dugmadima, dok su 3D dijalozi najzgodniji za programe koji
se distributiraju on-line: izgledaju cool a CTL3DV2.DLL zauzima svega 20K
nezipovan.
Obični dijalozi su bljak :).
windows.26djelovic,
-> #23, calex> > Može li ko da pošalje BWCC.DLL iz paketa BC++ 4.0? Glupavi Quattro Pro
>
> Može.
Hvala! Bulajo, mogao bi da ovu datoteku prebaciš u dir s obzirom na to da
je tamo stara verzija, a ova je duža svega za kilobajt-dva.
windows.27vcalic,
-> #25, djelovic>> Obični dijalozi su bljak :).
Stvar ukusa. Ja ne volim Borlandove dijaloge :))
Vlada
windows.28omega,
-> #25, djelovicŢ Ne. BC++ 4.0 ti daje izbor:
A BC++ 3.1?
windows.29anastazia,
-> #21, .obj>ODBC SDK (barem verzija 2.0) je malo prevelik za skidanje (velik je oko 5 MB),
>a i možeš "svuda" da ga nađeš...
Ako nije problem, malo pojasniti gde to "svuda", jer sam životno
zainteresovan da dođem do tako nečeg. Pa ćak i ako se bude trebalo platiti :)).
Molim te da mi odgovoriš na ovo pitanje, jer bi me spasao od dosta lutanja,
i gubljenja vremena.
windows.30ljubaz,
Nisam često u ovoj temi, nadam se da nećete zameriti ako je
odgovor na moje pitanje davno dat. Evo problema:
Instaliram PP5.0 ( Shareware verziju, naravno :) na svoje
pendžere i krenem u help da vidim šta ima novo. Help se lepo
rasprostre preko čitavog ekrana (ugodno za čitanje & šarmantno).
Izađem i startujem neki drugi program i help u njemu, kad i on
preko čitavog ekrana! E, to već nije ni lepo ni šarmatno da mi
aplikacija vršlja kako hoće po mašini. Zna li ko kako da
pripitomim dotičnu i svaku drugu?
windows.31ljubaz,
Još jedna "rupuška:" na jednoj, naizgled klasičnoj mašini
486DX2/66 sa naizgled uobičajenim DOS-om 6.2 instaliram
W4Wg 3.11 ( shareware verziju, naravno :) probam da izađem
u DOS kroz njega... I javi se sledeća poruka:
This Application has violated system integrity
due to execution of an invalid instruction and
will be terminated.
Quit all applications, quit windows and restart
your computer.
Proverim Properties, proverim PIF, ništa neobično.
Help, hilfe, Aiuto... itd.
windows.32vlador,
-> #30, ljubaz> aplikacija vršlja kako hoće po mašini. Zna li ko kako da
> pripitomim dotičnu i svaku drugu?
Stvar je u tome što je HELP jedinstvena windowsova aplikacija koja
prikazuje .HLP fajlove. Onako kako je zatvoriš tako ćeš je sledeći put
otviriti. Bojim se da tome nema pomoći. Barem ja ne znam...
---
■ VLADOR ■ Radi manje no sto mozes, a ono sto mozes,prebaci na druge
windows.33vitez.koja,
-> #30, ljubaz#=> pendžere i krenem u help da vidim šta ima novo. Help se
#=> lepo rasprostre preko čitavog ekrana (ugodno za čitanje
#=> & šarmantno). Izađem i startujem neki drugi program i
#=> help u njemu, kad i on preko čitavog ekrana! E, to već
#=> nije ni lepo ni šarmatno da mi
I varijanta:
sam si namestio help preko celog ekrana, pa si zaboravio na to.
II varijanta:
taj PP (?) startuje maksimizovan help. Pri izlasku iz helpa negde
se zapisuju podaci (moguće u neki .ini fajl, potraži pa ćeš naći)
o veličini prozora i koječemu još. Rešenje je da namestiš help
kako ti odgovara, a zatim staviš read-only atribut na fajl u
koji se upisuju izmene, te ga tako zaštitiš od daljih promena.
Rezultat bi trebalo da bude da PP startuje help preko celog
ekrana, a ostali programi onako kako si ga ti namestio.
Nisam probao, ali sam siguran da ova metoda funkcioniše. Međutim,
onemogućavanjem menjanja help-ovog konfiguracionog fajla možda
izgubiš još poneku mogućnost... Probaj, pa javi :)
windows.34dbrnik,
Moze li neko da mi pomogne?
Problem je otprilike ovakav:
Presao sam sa XT-a na 486DX50 i naravno ne mogu da se snadjem
Kako sve to ustimati da radi i brzo i dobro. Radim sa WFWG 3.11
i Corel 5.0. Sistem ima 8 MB ram, 250 VLB HD, 1 MB VLB Cirus Logic
video.
windows.35ikordic,
-> #34, dbrnikRE: XT -> 486
=> Presao sam sa XT-a na 486DX50 i naravno ne mogu da se snadjem
žestitke :) Kakav je osećaj? ;)))
=> Kako sve to ustimati da radi i brzo i dobro. Radim sa WFWG 3.11
=> i Corel 5.0. Sistem ima 8 MB ram, 250 VLB HD, 1 MB VLB Cirus Logic
=> video.
Pitanje optimalnog "uštimavanja" jedne 486 konfiguracije se teško može
uopštiti. Puno stvari zavisi od konkretne implementacije. Stoga, javi kakve
probleme imaš i gde ne možeš da se snađeš, pa da vidimo.
windows.36mdrazic,
-> #34, dbrnik> Presao sam sa XT-a na 486DX50 i naravno ne mogu da se snadjem
> Kako sve to ustimati da radi i brzo i dobro. Radim sa WFWG 3.11
Zar ne radi brže ? :))
windows.37markoni,
Postoji li neki "normalan" način da moje umetničko delo grafičkog
tipa u Windows-u prebacim u bilo koji pristojan format (PCX, TIF,
GIF, WMF, ...). Naime, CreateMetaFileDC kreira fajl koji ne uspevam
da ubacim u Word :(( Da li ja negde grešim, ili to zaista nije to?!!
windows.38djelovic,
-> #37, markoni> Naime, CreateMetaFileDC kreira fajl koji ne uspevam da ubacim u Word
Windows programi razlikuju dve vrste metafajlova: placeable i obične.
Standardne Windows funkcije rade sa običnom metafajlovima, dok Winword zahteva
placeable metafajl.
E sad, ono što tebi treba jeste funkcija koja će da zameni CreateMetafileDC
tako da se kreira "placeable" metafajl. Bilo bi najbolje da pogledaš u WPJ.*
datotekama u W:\INFO direktorijumu, jerbo su tamo dali (veoma kratak) sors
CreateMetafileDCBetter funkcije koja pravi placeable metafajl.
P.S. Ako ti treba neprogramersko rešenje, onda može da posluži i Corel. On
je u stanju da učita običan metafajl i da ga "pljucne" kao placeable.
windows.39markoni,
-> #38, djelovic> E sad, ono što tebi treba jeste funkcija koja će da zameni
> CreateMetafileDC tako da se kreira "placeable" metafajl. Bilo bi
> najbolje da pogledaš u WPJ.* datotekama u W:\INFO direktorijumu,
> jerbo su tamo dali (veoma kratak) sors CreateMetafileDCBetter
> funkcije koja pravi placeable metafajl.
Nažalost, tamo ima previše (btw dir je w:\prog) wpj*.* fajlova tako da
mi se ne skida sve to. Može li malo bliža odrednica?
> P.S. Ako ti treba neprogramersko rešenje, onda može da posluži i
> Corel. On je u stanju da učita običan metafajl i da ga "pljucne" kao
> placeable.
Jock, ne vrši posla :((
windows.40markoni,
-> #39, markoni> Nažalost, tamo ima previše (btw dir je w:\prog) wpj*.* fajlova tako da
> mi se ne skida sve to. Može li malo bliža odrednica?
Eh, videh da je to paket koji sadrži i mali spisak source-ova unutra, tako
da ću gi raspakujem u padu, pa da vidim šta tu ima zanimljivo. Izvinjavam
se na paranoji :))
windows.41djelovic,
-> #40, markoni> Eh, videh da je to paket koji sadrži i mali spisak source-ova unutra, tako
> da ću gi raspakujem u padu, pa da vidim šta tu ima zanimljivo.
Da se ne bi mučio, pogledao sam kod sebe na disku gde se nalaze te rutine
za Metafajlove. Možeš ih naći u WPJV1N8.* datoteci.
BTW, ne vidim da bi ti škodilo da ih pokupiš - unutra ima pregršt
zanimljivih trikova.
windows.42ljubaz,
-> #33, vitez.koja>> I varijanta:
>>
>> sam si namestio help preko celog ekrana, pa si zaboravio
>> na to.
Ova varijanta je naravno isključena.
>> II varijanta:
>>
>> taj PP (?) startuje maksimizovan help. Pri izlasku iz
>> helpa negde se zapisuju podaci (moguće u neki .ini fajl,
>> potraži pa ćeš naći) o veličini prozora i koječemu još.
>> Rešenje je da namestiš help kako ti odgovara, a zatim
>> staviš read-only atribut na fajl u koji se upisuju
>> izmene, te ga tako zaštitiš od daljih promena. Rezultat
>> bi trebalo da bude da PP startuje help preko celog
>> ekrana, a ostali programi onako kako si ga ti namestio.
Fajl koji menja je WIN.INI :( i to sekciju:
<Windows Help>
a u njoj stavku:
M_WindowPosition=<433,0,366,599,0>
menja u:
M_WindowPosition=<0,0,799,599,0>
>> Nisam probao, ali sam siguran da ova metoda funkcioniše.
>> Međutim, onemogućavanjem menjanja help-ovog
>> konfiguracionog fajla možda izgubiš još poneku
>> mogućnost... Probaj, pa javi :)
Imaš li neku ideju kako ga sprečiti da ovo radi?
P.S. PP = MGX Picture Publisher.
windows.43dejanr,
Mislim da smo već jednom pričali o tome na Sezamu, ali ko zna, možda u
međuvremenu neko ima neku novu ideju...
Dakle, ima li načina da se iz DOS taska Windows-a nešto prosledi
Print Manager-u. Konkretno, da se iz DOS taska na jednom računaru
u W4WG mreži štampa nešto na printeru koji je fizički povezan sa
nekom drugom stanicom?
Na Novell-u to ide sasvim fino, ili programom CAPTURE ili NetWare pozivima.
MORA da postoji i neki štos za W4WG!
windows.44djelovic,
-> #43, dejanr> Dakle, ima li načina da se iz DOS taska Windows-a nešto prosledi
> Print Manager-u.
Ima :). Sve što treba jeste mreža :).
Naime, trik je u tome da izlaz iz DOS-a pošalješ na jednu mašinu, koja onda
to opet vraća na tvoju mašinu koja štampa to što treba. Ukoliko ne možeš da se
snađeš za detalje, reci pa da idemo korak po korak.
windows.45jovca.car,
-> #43, dejanr/* Dakle, ima li načina da se iz DOS taska Windows-a nešto prosledi
/* Print Manager-u. Konkretno, da se iz DOS taska na jednom računaru
Program WinLink. Ima ga u nekoj od konferencija.
windows.46vcalic,
-> #43, dejanr>> Dakle, ima li načina da se iz DOS taska Windows-a nešto prosledi
>> Print Manager-u. Konkretno, da se iz DOS taska na jednom računaru
>> u W4WG mreži štampa nešto na printeru koji je fizički povezan sa
>> nekom drugom stanicom?
Pa čini mi se da ako je u Print Manager-u štampač definisan kao
udaljeni, da se on automatski vidi i iz DOS prozora. Znam da sam to isprobao,
ali trenutno nemam WfWG mrežu u blizini, pa se ne sećam tačno. žak mislim da
može i iz čistog DOS-a, primenom programa NET. Trebalo bi da bude da ako
stanica nema na sebi štampač, prvi udaljeni postaje LPT1, a svaki sledeći
dobija viši broj LPT2, LPT3...
Vlada
windows.47vitez.koja,
-> #42, ljubaz#=> Imaš li neku ideju kako ga sprečiti da ovo radi?
Ne znam ništa bolje od onoga što sam već predložio - proglasi
konfiguracioni fajl za read-only. Pošto se radi o WIN.INI, ovo
rešenje je skoro neprihvatljivo.
windows.48djorzor,
-> #43, dejanr> Dakle, ima li načina da se iz DOS taska Windows-a nešto prosledi
> Print Manager-u. Konkretno, da se iz DOS taska na jednom računaru
> u W4WG mreži štampa nešto na printeru koji je fizički povezan sa
> nekom drugom stanicom?
Koliko se sećam, radi kada pošalješ štampu na lpt1: port na kome je
WIN instalirao mrežni štampač.
windows.49stosic,
Kako se iz windows programa radi sa portovima ?
windows.50djelovic,
-> #49, stosic> Kako se iz windows programa radi sa portovima ?
Simple. Funkcijom OpenComm otvoris komunikacioni port, i onda sa
TransmitCommChar šalješ znake na port. Što se tiče očitavanja porta, za to
služi _callback_ funkcija koju Windows poziva kada se određeni broj znakova
"skupi" na portu.
Za detalje pogledaj u Windows API helpu pod "Communications", a bila je na
Sezamu i neka arhiva sa primerom korišćenja portova.
windows.51dejanr,
Probao sam "ono" za štampanje iz DOS prozora Windows-a za radne grupe,
i funkcioniše sve u 2^4! Stavi se na LPT1 (ili LPT2 itd) mrežni štampač,
i onda najobičniji Clipper program štampa na printeru koji je okačen na
neku "desetu" mašinu u mreži. Sve to bez ikakve izmene u samom Clipper
programu.
Hvala na pomoći ali, naravno, imam još pitanja ;) Eksperimentišući sa
ovakvom instalacijom "mrežnog" štampača, došao sam do pitanja da li se
to može na "klijent" kompjuteru uraditi i bez startovanja glomaznog
Windows-a. Ispalo je da može, programom NET.EXE koji se nalazi u
WIN direktorijumu. Umesto NET START koje inače startuje W4WG mrežu,
stavi se NET START WORKSTATION i ista redirekcija radi i bez startovanja
Windows-a. Međutim, izgleda da na server računaru (onaj na kome je
štampač) ne mogu na istu foru da se share-uju resursi, mora da se
startuje Windows. Ima li leka?
windows.52zormi,
-> #51, dejanr* Međutim, izgleda da na server računaru (onaj na kome je
* štampač) ne mogu na istu foru da se share-uju resursi,
* mora da se startuje Windows. Ima li leka?
Nema. Za serverske funkcije mora biti pokrenut WWG u enhanced modu.
windows.53vcalic,
-> #51, dejanr>> Windows-a. Međutim, izgleda da na server računaru (onaj na kome je
>> štampač) ne mogu na istu foru da se share-uju resursi, mora da se
>> startuje Windows. Ima li leka?
Ne. Šteta...
Vlada
windows.54stosic,
-> #50, djelovic>> Kako se iz windows programa radi sa portovima ?
>
> Simple. Funkcijom OpenComm otvoris komunikacioni port, i onda sa
Nisam mislio iskljucivo na com portove. Potrebna mi je zamena za DOS
inp, inpw, outp, outpw funkcije.
windows.55djelovic,
-> #54, stosic> Nisam mislio iskljucivo na com portove. Potrebna mi je zamena za DOS
> inp, inpw, outp, outpw funkcije.
Ukoliko hoćeš da pristupaš hardveru na niskom nivou, onda ti je verovatno
potrebno da napišeš drajver za određeni uređaj. Ukoliko želiš mogu da iskopam
neki primer pisanja drajvera pa da ga bacim na Sezam?
P.S. OpenComm ne važi samo za COM portove već i za PRN.
windows.56bigbrada,
-> #55, djelovic*>> potrebno da napišeš drajver za određeni uređaj. Ukoliko želiš
*>> mogu da iskopam neki primer pisanja drajvera pa da ga bacim
*>> na Sezam?
Hajde, please :) I meni bi trebalo tako nešto. Pozdrav,
The.Great
windows.57herak,
-> #54, stosic>> Nisam mislio iskljucivo na com portove. Potrebna mi je zamena za DOS
>> inp, inpw, outp, outpw funkcije.
Za sve 16-bitne Windows aplikacije moguće je slobodno (I TO RADI)
koristiti inportb, odnosno outportb (ili njihove WORD) ekvivalente,
ukoliko ne postoji (mada u to nisam siguran) .drv fajl koji šalje
neku od poruka. Ovo je dokumentovano i u help fajlovima i u literaturi
(bar za BORLAND C++ 4.0).
32-bitne aplikacije nisam radio tako da ti ne mogu
reći detaljnije, ali sam negde pročitao da se COM port otvara sa
CreateFile("\\.\COM1", .....). Oznaka "\\.\" govori 32-bitnim Win
aplikacijama da se govori o sistemskom drajveru, a ne o realnom
fajlu.
windows.58djelovic,
-> #57, herak> Za sve 16-bitne Windows aplikacije moguće je slobodno (I TO RADI)
> koristiti inportb, odnosno outportb (ili njihove WORD) ekvivalente
Ovo je tačno, ali pogrešno :). Nema potrebe da loše navike iz DOS sveta
prenosimo na Windows. Na kraju krajeva, malo je toga što se pod Windowsima ne
može uraditi bez "hakerisanja".
windows.59stosic,
-> #55, djelovic> Ukoliko zelis mogu da iskopam neki primer pisanja drajvera pa da ga bacim
> na Sezam?
Potrebno mi je samo citanje i pisanje na port uz pomoc Win API 16-bitnih
funkcija.
windows.60herak,
-> #50, djelovic>>Simple. Funkcijom OpenComm otvoris komunikacioni port, i onda sa
>>TransmitCommChar šalješ znake na port.
Not so simple. Ovaj opisani način (izvinjavam se na izrazu) je "silovanje"
Comm portova pod Windows-ima. TransmitCommChar je f-ja koja gura na red za
slanje karaktera dati karakter pre bilo kog drugog. Ovo je naravno, jedan
siguran način da se pošalje poruka, ali nikako i niz ili nizovi karaktera.
Stoga je u Windows logici smišljena druga funkcija-WriteComm koja šalje niz
karaktera na output buffer Comm porta.
>>Što se tiče očitavanja porta, za to
>>služi _callback_ funkcija koju Windows poziva kada se određeni broj znakova
>>"skupi" na portu.
Moram se i ovde malo pobuniti. Ovo je logika koja je korištena u Windows 3.0
pre uvodjenja EnableCommNotification funkcije i WM_COMMNOTIFY poruke u Win 3.1.
BOOL EnableCommNotification(int CommDev,
HWND hwnd,
int cbWriteNotify,
int cbOutQueue)
idCommDev - identifikator komunikacionog uredjaja koji šalje poruke prozoru
odredjenim hwnd parametrom, ovaj broj vraća OpenComm f-ja.
hwnd - odredjuje prozor koji hvata WM_COMMNOTIFY poruku.
cbWriteNotify - odredjue broj bajtova koje COM drajver mora upisati u input
queue, pre nego što pošalje poruku prozoru. Po slanju ove
poruke neophodno je pročitati sadržaj input queue-a.
cbOutQueue - odredjuje najmanji broj bajtova koji se može pisati na port.
U trenutku kada je broj bajtova u out queue manji od zadanog
tek onda je moguće ponovno pisanje na port.
Suština ove funkcije, odnosno poruke, je da kad god Comm port digne interrupt
comm.drv prosledi WM_COMMNOTFY poruku u message queue. Ova poruka, kao i
uostalom sve Windows poruke ima svoj LPARAM i WPARAM koji razlikuju tip poruke.
WM_COMMNOTIFY poruka uvek kao WPARAM daje identifikaciju porta, a kao LPARAM
notifikacioni status. Ovih statusa u najgrubljim crtama ima tri vrste:
CN_TRANSMIT - govori o dogadjaju da se manje od cbOutQueue elemenata nalazi u
output queue i čeka da bude poslato.
CN_RECEIVE - govori o dogadjaju da se najmanje cbWriteNotify bajtova nalazi
u input queue.
CN_EVENT - govori o tome da se desio neki od dogadjaja navedenih u
SetCommEventMask funkciji.
Tako da ovde precizno govoreći i nije neophodno raditi sa nekom pravom
callback funkcijom već je moguće u glavnoj hvatati sve poruke. Naravno
koliko programera, toliko i rešenja, ja sam samo hteo da ukažem na ono
što je vrlo dobro definisano i jasno rečeno u API-ju.
Sadržaj porta se čita ili tako što se zove GetCommError funkcija kojom
se proveri koliko se karaktera nalazi u input queue, pa se bafer koji
je pridružen tom queue-u iščita. Ima tu još jedno četiri pet f-ja koje
je moguće zvati i koristiti za proveru raznih statusa porta,
postavljanje parametara itd. isl.
PROCOM for Windows koristi, na primer, potpuno drugi pristup. Ceo
program radi tako što besomučno šalje WM_TIMER u message queue. To je
rešenje koje je takodje vrlo logično, ali je potrebno mnogo pažljivije
i preciznije programiranje, jer je najmanje vreme generisanja i
hvatanja WM_TIMER poruka reda 50ms - 55ms i nije najpreciznije, a zna
se tačno koliko je 9600 bauda karaktera u sekundi.
Mogao bih o tome još nadugačko pisati, ali mislim da je i ovo dovoljno.
Eto toliko o tome kako je jednostavno programirati COM port pod
Windowsima.
Pozdrav, Herak.
windows.61herak,
-> #58, djelovic>>Ovo je tačno, ali pogrešno :). Nema potrebe da loše navike iz DOS sveta
>>prenosimo na Windows. Na kraju krajeva, malo je toga što se pod Windowsima ne
>>može uraditi bez "hakerisanja".
Ruku na srce ovo i jeste pomalo hakeraj ;). Najveća je muka što ovde trenutno
ne postoji radnja u koju se može otići i kupiti Windows DDK, niti se može
časkom pretplatiti na Windows Programmer's Journal. Vrlo je slabo, tačnije
nikako, dokumentovano kako Windows-i rade sa I/O portovima, tako da u slučaju
da nema nikakvog drajvera za nekakav komunikacioni uredjaj mora malo i da se
hakeriše.
Ovo govorim iz konkretnog iskustva programiranja neke A/D karte za rad
pod Windows-ima. Proizvodjač, ili bolje rečeno diler, nije isporučio uz
karticu nikakav drajver. Windows-i nisu baš user friendly u odnosu na
različite ISR-ove, a ne znam kako da napravim .drv fajl. I tako, ostadoše
inportb i outportb kao sasvim solidna rešenja.
Vrlo bih ti bio zahvalan ako bi našao taj tekst o pravljenju .drv-ova, pa
da se menjamo ovde za različte drajvere.
Pozdrav, Herak
windows.62vcalic,
-> #57, herak>> Za sve 16-bitne Windows aplikacije moguće je slobodno (I TO RADI)
>> koristiti inportb, odnosno outportb (ili njihove WORD) ekvivalente,
>> ukoliko ne postoji (mada u to nisam siguran) .drv fajl koji šalje
>> neku od poruka. Ovo je dokumentovano i u help fajlovima i u literaturi
>> (bar za BORLAND C++ 4.0).
Ali ne pokušavaj takav program da startuješ recimo pod NT-om :))
Kažu da baš zbog ovakvih stvari 16-bitni Win programi ne rade pod
NT-om.
Vlada
windows.63vcalic,
-> #60, herak>> Mogao bih o tome još nadugačko pisati, ali mislim da je i ovo dovoljno.
>> Eto toliko o tome kako je jednostavno programirati COM port pod
>> Windowsima.
Najjednostavnije je uzeti Visual Basic i nabaviti neki dobar VBX za
rad sa COM portovima. Postoje i takvi u koje su ugrađeni i bitniji fajl
transfer protokoli, uključujući Zmodem.
Vlada
windows.64herak,
-> #62, vcalicTo sto si rekao stvarno stoji, ali kad se nema bolje. ;)
windows.65vcalic,
-> #64, herak>> To sto si rekao stvarno stoji, ali kad se nema bolje. ;)
Zar je moguće da niko nema taj čuveni DDK?
Vlada
windows.66djelovic,
-> #65, vcalic> Zar je moguće da niko nema taj čuveni DDK?
Ako treba, ja mogu da obezbedim DDK za NT. Ne znam da li on sadrži i DDK za
Windows 3.11? Inače, i u drajverima se za pristup portovima koriste obične
inp/outp funkcije; razlika je jedino što drajver omogućuje kontrolu pristupa
nekom uređaju.
windows.67herak,
-> #63, vcalic>>Najjednostavnije je uzeti Visual Basic i nabaviti neki dobar VBX za
>>rad sa COM portovima. Postoje i takvi u koje su ugrađeni i bitniji fajl
>>transfer protokoli, uključujući Zmodem.
Još jednostavnije je imati kućnog programera koji usput kuva kafu, ručak,
čuva decu, čisti kuću, izvodi kera u šetnju i još ti daje pare zato što ga
puštaš da sve ovo radi.
Pozdrav, Herak.
windows.68vcalic,
-> #66, djelovic>> Ako treba, ja mogu da obezbedim DDK za NT. Ne znam da li on sadrži i DDK
>> za Windows 3.11?
Mislim da ne, ali nisam siguran.
>> Inače, i u drajverima se za pristup portovima koriste
>> obične inp/outp funkcije; razlika je jedino što drajver omogućuje kontrolu
>> pristupa nekom uređaju.
E, baš me zanima kako izgledaju ti Win drajveri. Imaš neki primer u
source-u?
Vlada
windows.69vcalic,
-> #67, herak>> Još jednostavnije je imati kućnog programera koji usput kuva kafu, ručak,
>> čuva decu, čisti kuću, izvodi kera u šetnju i još ti daje pare zato što ga
>> puštaš da sve ovo radi.
Gde može da se nađe takav? ;)
Vlada
windows.70jovca.car,
-> #63, vcalic/* Najjednostavnije je uzeti Visual Basic i nabaviti neki dobar VBX za
Zar BC++ 4.0 ne podržava VBX-ove?
windows.71vcalic,
-> #70, jovca.car>> Zar BC++ 4.0 ne podržava VBX-ove?
Ne znam, ostao sam na 3.1!?
Vlada
windows.72djelovic,
-> #70, jovca.car> Zar BC++ 4.0 ne podržava VBX-ove?
Da, ali je "a bit clumsy" sa njima.
windows.73bulaja,
**** new file ****
WINDOWS - W:\PROGRAM
----------------------
whas20 a01 399598 Microsoft Help Authoring System za WinWord 2.0 #1
whas20 a02 399567 Microsoft Help Authoring System za WinWord 2.0 #2
whas20 a03 399567 Microsoft Help Authoring System za WinWord 2.0 #3
whas20 a04 152424 Microsoft Help Authoring System za WinWord 2.0 #4
what60 zip 567880 Microsoft Help Authoring Toolkit za WinWord 6.0
5 file(s) 1874 kb
windows.74jovca.car,
-> #72, djelovic/* Da, ali je "a bit clumsy" sa njima.
Što će reći...?
windows.75djelovic,
Uz poruku je mala arhiva koja demonstrira pisanje device drajvera pod
Windowsima. Enjoy.
winedd.zipwindows.76stosic,
Kako se pravi standardni 16-bitni DLL sa npr. sledecom funkcijom:
int dodaj (int i)
{
return (i+1);
}
DLL treba da radi u VB i VO. Dobrodosao je i neki bolji primer, sa opisom
def fajla i komandama za kompajliranje i linkovanje (imam MSVC++ 1.0 i
Watcom C++ 10 ali , ako treba, nabavicu i Borlanda).
windows.77vlador,
Za VB magove...
Svoj disk sam opteretio Visual Basicom 3.0 Pro, i prvi utisci su bili
zadovoljavajući. A onda sam pokušao da napravim malu program koji će
podatke iz neke postojeće baze da baci u tabelu (grid). Uzdao sam se u
primere i u online help, ali ni jedan ni drugi mi nisu mnogo pomogli.
Problem je u radu sa bazama.
Prva stvar koja me interesuje (a možda i poslednja:) je čije je "dete"
Recordset??? U helpu ga nabudžiše na Data1, ali nikako da nađem šta je to
ustvari i kako da napravim ja svoj Data1, ili šta već.
Još malo pitanja... O:) Može pointer na strukturu Database objekta? U helpu
je nisam našao.
Najbolje bi bilo kad bi neko napravio (komentarisan) gorenavedeni program i
poslao ga ovde, ako nije problem, naravno. :)
windows.78stosic,
SUBJECT: standartni 16-bitni DLL sa funkcijama za citanje/pisanje na port
Potreban mi je DLL sa funkcijama za pisanje i citanje po proizvoljnom portu za
CA-Visual Object. Kako nisam prof. windows programer posluzio sam se metodom
stapa i kanapa: najblizi mi je bio Watcom C/C++ 10 i njegov primer u DLL dir-u.
Evo rezultata probe (koristio sam abs() za test da bi posle iskoristio inp() i
outp() - WIN Api nema te funkcije?) :
- Napravio sam DLL i ukljucio ga u VO.
- Funkcija Dodaj radi.
- Funkcija Apsolutno NE!
- Po zavrsetku programa dobijam GFP.
Gde je caka?
U nastavku je source:
DLL16.C
-------
#include <windows.h>
int PASCAL LibMain( HANDLE hmod, WORD dataseg, WORD heap, LPSTR cmdline )
{
char buf[128];
sprintf( buf, "DLL16 Started" );
MessageBox( NULL, buf, "DLL16", MB_OK | MB_TASKMODAL );
return( 1 );
}
int __export FAR PASCAL Dodaj(int broj)
{
broj = broj + 1;
return(broj);
}
int __export FAR PASCAL Apsolutno(int broj)
{
broj = abs(broj);
return(broj);
}
DLL16.LNK
---------
system windows dll initinstance memory
file dll16
option oneautodata
option map
option heapsize=32K
libfile libentry
KOMPAJLIRANJE & LINKOVANJE
--------------------------
wcc dll16 /bt=windows /mc /zu /d2
wlink @dll16
windows.79mkaralic,
Zdravo,
Da li neko zna zašto, kada u BC++ 3.1 formiram objekat ComboBox u dijalogu sa
new TComboBox(this, IDD_CBB_, MAXPATH)
Windows pri zvanju ovog dijaloga prijavljuje:
Application Error
WINDEV caused a General Protection Fault in module WINDEV.EXE at 0018:05D0?
Kako, uopšte formirati ovakav objekat?
// mik
windows.80mibak,
Molim za pomoć. Kada iz Corela prebacujem u neki drugi format umulja se
slika. Kako ovo rešiti.
Hvala.
/\/\|3
windows.81dejanr,
-> #80, mibak>> Molim za pomoć. Kada iz Corela prebacujem u neki drugi format umulja se
>> slika. Kako ovo rešiti.
U koji format? Recimo, snimiš kao PCX, i onda neki program neće da učita taj
PCX? Probaj da učitaš u običan Paintbrush (iz Windows-a) i da snimiš u istom
formatu, ponekad pomogne.
Inače, u celini nisam zadovoljan Corel-ovim snimanjem u raznim formatima,
sve to (bar u verziji 4 sa kojom sam radio) prilično kilavo funkcioniše.
windows.82djelovic,
-> #78, stosic> - Napravio sam DLL i ukljucio ga u VO.
> - Funkcija Dodaj radi.
> - Funkcija Apsoltno NE!
> - Po zavrsetku programa dobijam GFP.
Sasvim logično (kad znaš gde leži problem :)).
Tvoja funkcija "Apsolutno" poziva bibliotečku funkciju _abs_, koja se
nalazi u nekom DLL-u koji je došao uz Watcom C++. Međutim, pošto tvoj DLL
ne naznačuje da će koristiti taj drugi DLL, onda poziv funkciji _abs_ ne može
da uspe.
Rešenje ima dve varjante:
1. U Watcomovom okruženju definiši da se uz DLL statički "pakuju" i sve
bibliotečke funkcije, umesto da DLL zavisi od drugih DLL-ova.
2. Koristi _LoadLibrary_ da učitaš bibliotečki DLL koji sadrži funkciju
_abs_.
S obzirom na to da tebe zanimaju funkcije inp/outp, čini mi se
najlogičnije (?) da ih sam napišeš na inline mašincu u okviru DLL-a, nego
da ih učitavaš zajedno sa potencijalno velikom statičkom bibliotekom.
windows.83bulaja,
Treba mi utility koji pruža više podataka o alociranim Windows
resursima (dakle ko je zauzeo koliko čega, čak bi dobrodošla
opcija praćenja i logovanja njihove alokacije) :). Postoji li
nešto takvo?
windows.85oki.,
-> #83, bulaja>> Treba mi utility koji pruža više podataka o alociranim Windows
>> resursima (dakle ko je zauzeo koliko čega, čak bi dobrodošla
>> opcija praćenja i logovanja njihove alokacije) :). Postoji li
>> nešto takvo?
PC Tools for Win 2.0. Nakon pritiska Ctrl+ESC daje podatke o aktivnim
aplikacijama (k'o i normalni Win), a pored toga i podatke o zauzetosti
memorije, resursa(? nisam siguran jer mi trenutno nije aktivan).
windows.86dvesic,
-> #83, bulaja>> Treba mi utility koji pruža više podataka o alociranim Windows
>> resursima (dakle ko je zauzeo koliko čega, čak bi dobrodošla
Probaj MFT iz QEMM 7.5 paketa. Daje dosta detaljne informacije.
windows.87omega,
-> #86, dvesicŢ>> Treba mi utility koji pruza vise podataka o alociranim Windows
Ţ>> resursima (dakle ko je zauzeo koliko cega, cak bi dobrodosla
Ako sam dobro shvatio, resenje je WinSight iz BC++.
windows.88.obj,
Kako da sprečim Resource Workshop (verzija 1.02 tj. 3.1) da mi pravi RWS fajl
svaki put kada iz njega snimim RC ili DLG datoteku?
Hvala unapred.
windows.89cnenad,
-> #87, omegaŁŁŁ Ako sam dobro shvatio, resenje je WinSight iz BC++.
Možda MS Info ?
windows.90ziva,
Gde može da se nađe fajl WINSOCK.DLL za WfWg 3.11
Ziva
windows.91goranr,
-> #81, dejanr>> PCX? Probaj da učitaš u običan Paintbrush (iz Windows-a) i da snimiš u
>> istom formatu, ponekad pomogne.
>>
>> Inače, u celini nisam zadovoljan Corel-ovim snimanjem u raznim formatima,
>> sve to (bar u verziji 4 sa kojom sam radio) prilično kilavo funkcioniše.
Isto to i u 3.0 i u 5.0 :(((( Ja na disku još držim 2.01 kad hoću nešto
da exportujem u npr. GEM ili tako nešto. :(((
windows.92bigbrada,
Treba mi mala pomoć (tzv. hint :) oko ikona. Naime, kako da
svom programu dodelim ikonu koja će se pojavljivati pri
korišćenju 'ALT+TAB'?
Dodelio sam mu ikonicu koja se pojavljuje u PM-u sa :
MainW. hIcon := LoadIcon (0, 'ICON');
MainW je tipa TWndClass, naravno, a 'ICON' je iz RES fajla.
Da li se i ovo što hoću da postignem radi na sličan način?
Kao što se vidi u pitanju je TPW, mada mi neće smetati ni
odgovor u C-u :) 10x unapred :)
The.Great
windows.93spantic,
-> #90, ziva> Gde može da se nađe fajl WINSOCK.DLL za WfWg 3.11
Pravi ili lažnjak?
Akoje pravi, probaj Trumpet Socket koje imaš na anonymous FTP-u:
ftp://ubbg.etf.bg.ac.yu/msdos/comm/tcpip/winsock/
i u
ftp://ubbg.etf.bg.ac.yu/msdos/comm/tcpip/ncsa/windows/
a ako je lažni (samo da prorade aplikacije koje traže winsock.dll)
potraži nullsocket.zip.
windows.94ziva,
-> #93, spantic> Akoje pravi, probaj Trumpet Socket koje imaš na anonymous FTP-u:
>
> ftp://ubbg.etf.bg.ac.yu/msdos/comm/tcpip/winsock/
A kako da odem tamo?
Ziva
windows.95calex,
-> #94, ziva<!>> ftp://ubbg.etf.bg.ac.yu/msdos/comm/tcpip/winsock/
<!> A kako da odem tamo?
Možeš da probaš MR-systems BBS.
windows.96ppekovic,
-> #90, ziva>> Gde može da se nađe fajl WINSOCK.DLL za WfWg 3.11
Recimo u Microsoft 32bit TCP/IP koga imaš ovde na Sezamu.
Paya
windows.97aleck,
-> #90, ziva>> Gde može da se nađe fajl WINSOCK.DLL za WfWg 3.11
Na UBBG-u.Nalazi se u msdos.comm.tcpip.misc pod imenom winsock.zip.
Ima i winsockd.zip(doc fajl).
windows.98mkaralic,
-> #92, bigbrada> Treba mi mala pomoć (tzv. hint :) oko ikona. Naime, kako da
> svom programu dodelim ikonu koja će se pojavljivati pri
> korišćenju 'ALT+TAB'?
>
> Dodelio sam mu ikonicu koja se pojavljuje u PM-u sa :
>
> MainW. hIcon := LoadIcon (0, 'ICON');
>
> MainW je tipa TWndClass, naravno, a 'ICON' je iz RES fajla.
Evo odgovora u BC++ u 3.1 :
rWndClass.hIcon = LoadIcon (GetApplication()->hInstance, "Icon");
===========================
Ovo je iz jedne knjige, a do zaključka da je to to, došao sam tako što
sam umesto onog što je gore podvučeno, stavio NULL i radilo je isto kao
kod tebe. Kada sam vratio ovo podvučeno, sve je opet proradilo.
Za ovaj parametar, koji je podvučen, piše da je "handle of application
instance", znači, nešto kao broj aplikacije. Kada je to NULL, ikona se
ne dodeljuje ni jednoj aplikaciji u toku rada (mislim), pa se zato i ne
pojavljuje kod Alt+Tab.
Ovo gore je deklarisano u C++ u kao:
PTApplication GetApplication(); // pokazivač na objekat TApplication
žini mi se da je hInstance članica TApplication, pa se tako i dobija
njegova vrednost, jer se ova f-ja zove u f-ji koja ne pripada klasi
naslednici TApplication.
Eto, to je bio moj pokušaj da pomognem. Javi ako proradi.
Pozdrav // Mik !!!
windows.100bigbrada,
-> #98, mkaralic*>> Eto, to je bio moj pokušaj da pomognem. Javi ako proradi.
Ne da radi, nego RADI! :)) Bilo je dovoljno samo jedno
'hInstance' :) tj.
MainW. hIcon := LoadIcon (hInstance, 'ICON');
10x a LOT! :)
The.Great
windows.101mkaralic,
-> #79, mkaralic> Da li neko zna zašto, kada u BC++ 3.1 formiram objekat ComboBox
Eto me opet.
Zna li neko kako da stvorim ComboBox u okviru za dijalog? Reč je o
Borland C++ u.
Unapred Hvala!
Pozdrav // Mik !!!
windows.102aleck,
Valjda ide ovde...
Jedan moj prijatelj pita sledeće:Zašto Turbo Debager for win
prijavljuje "Can't load windebug.dll"?Ima li ovde leka?
p.s.TDW je iz Borland C++2.0.
windows.104vcalic,
reply na cavo:15.21, bulaja
>> Pa čitaj do kraja šta sam napisao :)! Poredio sam VB i batch fajlove
>> zato što se VB programi (uz to što i izgledaju slično:) praktično
>> interpretiraju prilikom rada (kao i batch datoteke).
Izgledaju slično? Pitam se, jesi li ti uopšte video VB...
Uostalom, to što VB kod radi sa dinamičkom bibliotekom ne znači da
je interpretiran, pre da je baziran na nekoj vrsti p-koda.
Kako to radi VO? Nemam nameru da ga koristim, ali me zanima?
Vlada