dev-cpp-users Mailing List for Dev-C++ (Page 136)
Open Source C & C++ IDE for Windows
Brought to you by:
claplace
You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(15) |
Oct
(115) |
Nov
(154) |
Dec
(258) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(377) |
Feb
(260) |
Mar
(249) |
Apr
(188) |
May
(152) |
Jun
(150) |
Jul
(195) |
Aug
(202) |
Sep
(200) |
Oct
(286) |
Nov
(242) |
Dec
(165) |
| 2002 |
Jan
(245) |
Feb
(241) |
Mar
(239) |
Apr
(346) |
May
(406) |
Jun
(369) |
Jul
(418) |
Aug
(357) |
Sep
(362) |
Oct
(597) |
Nov
(455) |
Dec
(344) |
| 2003 |
Jan
(446) |
Feb
(397) |
Mar
(515) |
Apr
(524) |
May
(377) |
Jun
(387) |
Jul
(532) |
Aug
(364) |
Sep
(294) |
Oct
(352) |
Nov
(295) |
Dec
(327) |
| 2004 |
Jan
(416) |
Feb
(318) |
Mar
(324) |
Apr
(249) |
May
(259) |
Jun
(218) |
Jul
(212) |
Aug
(259) |
Sep
(158) |
Oct
(162) |
Nov
(214) |
Dec
(169) |
| 2005 |
Jan
(111) |
Feb
(165) |
Mar
(199) |
Apr
(147) |
May
(131) |
Jun
(163) |
Jul
(235) |
Aug
(136) |
Sep
(84) |
Oct
(88) |
Nov
(113) |
Dec
(100) |
| 2006 |
Jan
(85) |
Feb
(119) |
Mar
(33) |
Apr
(31) |
May
(56) |
Jun
(68) |
Jul
(18) |
Aug
(62) |
Sep
(33) |
Oct
(55) |
Nov
(19) |
Dec
(40) |
| 2007 |
Jan
(22) |
Feb
(49) |
Mar
(34) |
Apr
(51) |
May
(66) |
Jun
(43) |
Jul
(116) |
Aug
(57) |
Sep
(70) |
Oct
(69) |
Nov
(97) |
Dec
(86) |
| 2008 |
Jan
(32) |
Feb
(47) |
Mar
(106) |
Apr
(67) |
May
(28) |
Jun
(39) |
Jul
(31) |
Aug
(25) |
Sep
(18) |
Oct
(25) |
Nov
(5) |
Dec
(21) |
| 2009 |
Jan
(33) |
Feb
(27) |
Mar
(27) |
Apr
(22) |
May
(22) |
Jun
(10) |
Jul
(17) |
Aug
(9) |
Sep
(21) |
Oct
(13) |
Nov
(4) |
Dec
(11) |
| 2010 |
Jan
(10) |
Feb
(8) |
Mar
(4) |
Apr
(1) |
May
|
Jun
(2) |
Jul
|
Aug
(1) |
Sep
(8) |
Oct
(26) |
Nov
(9) |
Dec
(1) |
| 2011 |
Jan
(21) |
Feb
(16) |
Mar
(4) |
Apr
(19) |
May
(26) |
Jun
(9) |
Jul
(6) |
Aug
|
Sep
(4) |
Oct
(3) |
Nov
(2) |
Dec
(1) |
| 2012 |
Jan
(4) |
Feb
(7) |
Mar
(4) |
Apr
|
May
(1) |
Jun
(10) |
Jul
(1) |
Aug
(1) |
Sep
(18) |
Oct
(3) |
Nov
(1) |
Dec
(1) |
| 2013 |
Jan
(4) |
Feb
(2) |
Mar
(15) |
Apr
(6) |
May
(1) |
Jun
(3) |
Jul
(1) |
Aug
(2) |
Sep
(4) |
Oct
|
Nov
(9) |
Dec
|
| 2014 |
Jan
(4) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
(4) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
(4) |
| 2015 |
Jan
(2) |
Feb
(3) |
Mar
(1) |
Apr
(2) |
May
(1) |
Jun
(2) |
Jul
|
Aug
(1) |
Sep
(2) |
Oct
(9) |
Nov
(35) |
Dec
(6) |
| 2016 |
Jan
(7) |
Feb
(10) |
Mar
(10) |
Apr
(9) |
May
(13) |
Jun
(9) |
Jul
(1) |
Aug
(3) |
Sep
(3) |
Oct
(1) |
Nov
(1) |
Dec
|
| 2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2019 |
Jan
(1) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Andrew M. <aj...@ta...> - 2005-04-21 20:03:59
|
I've recently started using Dev-C++, and generally, I've been quite impressed with the functionality and configurability available. I wondered, however, if it has ever been suggested that in-built support for SVN (Subversion) be added ? As far as I can see, this would require very little modification over and above the CVS support that's already there : indeed, if it were possible to totally configure the options passed to CVS (for instance, to be able to remove the -z compression parameter), then I think the CVS support as it stands would work with SVN - it'd just be a case of 'pointing' the CVS executable option to svn.exe, since SVN and CVS share many of the same directives : checkout, update, diff and so on. Cheers, Andy MacLennan. PS. Apologies if this has already been discussed on this mailing list, but a cursory search for 'SVN' and 'Subversion' didn't reveal anything ... |
|
From: celsius t. <atc...@ya...> - 2005-04-21 19:21:29
|
Hi folks,
will any one give information on, where to download insight debugger
i am running win 98 machine,compiler is Bloodshed Dev-C++ ,version 4
mingw compiler 2.95.2-1
Send instant messages to your online friends http://uk.messenger.yahoo.com |
|
From: <Mat...@Ve...> - 2005-04-21 18:53:22
|
Per,
You spent a _lot_ longer on that than I ever would have. :-) I was just
giving a quick general answer since I'm at work and in kind of a hurry to
finish up a big project. Yours was a really cool explanation. Thanks for
writing it. It taught me a lot about how memcpy really works.
I suppose that-- this observation is for the truly pedantic, you could seek
out its "official" implementations in the GLIBC source code. Don't you just
love the GPL? :-)
Regards,
Matt
-----Original Message-----
From: Per Westermark [mailto:pw...@ia...]
Sent: Thursday, April 21, 2005 11:01 AM
To: Mat...@Ve...
Cc: xtr...@vi...; al...@ya...;
dev...@li...
Subject: RE: [Dev-C++] Shallow copy
For small objects, an inlined copy function might be better, but for
larger blocks, the memcpy() function is optimized to switch over to 32-bit
(or larger) moves for maximum performance, i.e. it definitely wins over a
char* copy.
By the way, a couple of problems with the code:
No (char*)i - you wan't to declare i as a variable, not typecast it to
char*.
Second, avoid extra variables. Your code is using 4 variables. Instead of
creating a new variable i and do begin+i you should increment begin.
Besides using a variable less, it also optimizes the memory reference for
some processors.
A low-end memcpy() looks something like:
void* copy(void *dst,void *src,unsigned size) {
char* orig_dst = dst;
char* end = (char*)src + size;
while ((char*)src < end) {
*((char*)dst)++ = *((char*)src)++;
}
return orig_dst;
}
A normal memcpy() will do some optional single byte copies at start to get
word-aligned, and then do several unrolled word-copies (as large word as
possible, i.e. normally 32 or 64 bit) and then end with some optional
single-byte copies again.
If data is known to always be well-aligned and of a reasonable size, a
better code would be (pseudo-code):
void* copy(void *dst,void *src,unsigned size) {
// Observe: Code assumes that src and dst are aligned to sizeof(long)
// If they are not, one or more single-byte copy are needed...
void* orig_dst = dst;
unsigned r = size % sizeof(unsigned long);
unsigned count = size / sizeof(unsigned long);
if (size >= 4) {
// Unroll loop 4 times.
size >>= 2;
r += 4*sizeof(unsigned long);
} else {
// Too small block to unroll.
r += 4*size;
size = 0;
}
for (;size; size--) {
*((unsigned long*)dst)++ = *((unsigned long*)src)++;
*((unsigned long*)dst)++ = *((unsigned long*)src)++;
*((unsigned long*)dst)++ = *((unsigned long*)src)++;
*((unsigned long*)dst)++ = *((unsigned long*)src)++;
}
// r and this code not needed if size is a multiple of sizeof(long)
for (;r; r--) {
*((char*)dst)++ = *((char*)src)++;
}
return *orig_dst;
}
In reality, this kind of code is written in assembler, to allow further
optimizations by for example using calculated jumps into the unrolling
code. Also, some processors have special instructions for memory transfer
operations.
/Per W
On Thu, 21 Apr 2005 Mat...@Ve... wrote:
> Alright. Once you have overloaded an operator, you are stuck with that
> operator. However, overloaded operators apply on a class by class basis.
The
> HugeStuff type will not use the operator= that you defined for your class.
> Can you think of a way to refactor your operator= to operate in terms of
the
> default operator= define for type HugeStuff?
>
> Also, memcpy should be very fast. If it's not, try rolling your own. It
> might work something like the below code. Also make sure you enable -O3
> -fexpensive-optimizations when you build the code. You might also need
-mcpu
> and -mtune.
>
> Some routines benefit heavily from optimization. Copy-heavy routines seem
to
> need help with this. When I wrote a crypto algorithm a while ago, it
doubled
> the speed to optimize it fully.
>
> void copy(void* begin, void* end, void* dest)
> {
> for((char*) i=0; i<(char*)end; i++)
> {
> *(char*)dest=(char*)(begin+i);
> }
> }
>
> HTH!
> Matt
> -----Original Message-----
> From: dev...@li...
> [mailto:dev...@li...]On Behalf Of Francesco
> Sent: Thursday, April 21, 2005 3:02 AM
> To: Alfred P. Reaud
> Cc: Dev C++
> Subject: Re: [Dev-C++] Shallow copy
>
>
> Thanks for answering Alfred,
> I'm already using the STL but since I'm still in a learning stage I was
> trying to understand the "inner workings". Suppose I'm building ( just for
> my own pleasure :-) ) a simple competitor to the vector template. Or to
make
> it even more banal, suppose I have the following code:
>
>
> class MyData
> {
> typeHugeStuff * mHugeStuffPtr;
> // ....
> public:
> // ....
> MyData const & operator=( MyData const & inMyData ); // the
> definition of this copies also the stuff pointed to by mHugeStuffPtr
> // .....
> };
>
>
> template< typename T >
> void MySwap( T * inDataPtr1, T * inDataPtr2 )
> {
> #ifdef BAD_SWAP
> // the following will swap in memory the two objects but will also
> deallocate/allocate/copy hugeStuff
> T tempData;
>
>
> tempData = *inDataPtr1;
> *inDataPtr1 = *inDataPtr2;
> *inDataPtr2 = tempData;
> #else
> // the following will just swap bitwise the members of the two
> objects without erasing/duplicating/whatever hugeStuff
> // but this bitwise copy seems to be slower than using the
operator=
> (when it's not overloaded)
> // so I was wondering if it is possible to access the UNoverloaded
> operator= in objects that have overloaded it....
> char * aPtr;
>
>
> aPtr = (char*) malloc ( sizeof( T ) );
> memcpy( aPtr, inDataPtr1, sizeof( T ) );
> memcpy( inDataPtr1, inDataPtr2, sizeof( T ) );
> memcpy( inDataPtr2, aPtr, sizeof( T ) );
> free( aPtr );
> #endif
> }
>
>
> void main( void )
> {
> MyData * aDataPtr;
>
> aDataPtr = new MyData[ 100 ];
> FillUp( aDataPtr, 100 ); // filling up with data
> MySwap< MyData >( aDataPtr + 20, aDataPtr + 40 ); // just
> because.... :-)
> }
>
>
> Thanks in advance for any insight,
> Francesco
>
>
> On Apr 20, 2005, at 7:46 PM, Alfred P. Reaud wrote:
>
>
> Hi Francesco,
>
> Your array of class objects would be better served if it where a list or
> vector of class objects instead of an array. Then you can use the
iterator
> features, including list and vector specific swap and sort member
functions.
> I f you must use an array of class objects, then there's always the
> <algorithm> standard template library header. Algorithm has a rich set of
> functions that include swap, sort, and other useful data manipulation
> algorithms such as unique, etc. These functions are usually optimized,
and
> work in most instances significantly better than manually coded swap or
sort
> functions.
>
> I'm not actually sure what you mean by "deep copy", however, I'm assuming
> that you mean actual data copying. You shouldn't be copying data to swap
> it! You should be swapping pointers to the data. Maybe the issue is in
> using a class class_objects[array_size]; declaration vs. a class
> *class_objects; declaration, because the overloaded operator= may operate
in
> a different fashion between a pointer and an array element (i.e.
> class_objects[7], is a pointer, but in machine code is actually a set of
> pointer arithmetic operations). The class operator= should already be
> configured to correctly do something like:
>
> class *obj_a, *obj_b, *temp;
> obj_a = new class; ...;
> temp = obj_a; obj_a = obj_b; obj_b = temp;
> delete(temp); ...
>
> so that should work correctly, ***** however *****
>
>
>
> list<class> obj_list;
> list<class>::iterator obj_iter;
> obj_list.push_back(obj_a); ...
> obj_iter = obj_list.begin();
> obj_list.sort() or obj_list.sort( compare_function );
> ...
>
> is easier, more elegant, and uses the optimized features of C++!
Hopefully
> the above helps!
>
>
> Francesco <xtr...@vi...> wrote:
> Hi everybody,
> I'm a total beginner and I have the following problem:
> I have an array of objects instantiated from a class that has member
> pointers to dynamically allocated data. This class has also the usual
> overloaded operator=. I have to sort this array and I need to do some
> swapping. But swapping by "deep copy" seems useless to me in this case,
> thus is it possible somehow to override the overloaded operator= and
> use just for the swapping the normal operator =? I could use memcpy for
> a bitwise copy, but it seems to be significantly slower, especially
> for small objects.
> Thanks in advance,
> Francesco
> <snip>
>
>
>
>
> Alfred P. Reaud
> <image.tiff>
> ___________________________________________________________________
> The information contained in this message and any attachment may be
> proprietary, confidential, and privileged or subject to the work
> product doctrine and thus protected from disclosure. If the reader
> of this message is not the intended recipient, or an employee or
> agent responsible for delivering this message to the intended
> recipient, you are hereby notified that any dissemination,
> distribution or copying of this communication is strictly prohibited.
> If you have received this communication in error, please notify me
> immediately by replying to this message and deleting it and all
> copies and backups thereof. Thank you.
>
>
>
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> Dev-cpp-users mailing list
> Dev...@li...
> TO UNSUBSCRIBE: http://www23.brinkster.com/noicys/devcpp/ub.htm
> https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
>
|
|
From: Ray K. <kul...@wr...> - 2005-04-21 18:20:35
|
Another thing to consider is that, as far as I know, while the return *type* of a function defaults to int, the return *value* doesn't default to anything in particular. If so, it might just return whatever value happens to live in memory at a certain point, and if the value is anything other than 0, the operating system will interpret that to mean that the program terminated with an error. (It's good form to include the type specification and return statement, regardless.) Per Westermark <pw...@ia...> wrote: > Note that > main() > is ONLY allowed for C programs, where a symbol without a declared data > type defaults to int, i.e. > main() > in reality means: > int main() > in a C program. > For C++ programs, you MUST actually use > int main() > since the ISO C++ standard requires it. Yes, I know that g++ do accept > the > lazy form and only emits "warning: ISO C++ forbids declaration of > `main=B4 > with no type" if warnings are enabled. However, don't assume something > about how other compilers look at ISO compliance requirements! > /Per W > On Thu, 21 Apr 2005, Austin Scholze wrote: > >> also, I have found in dev-C++ that you may just use >> >> main() >> >> without actually initializing it and that it will exit at the end of >> the function. >> ----- Original Message ----- >> From: Verne H. Bohlender >> To: Dev C++ ; Alfred P. Reaud >> Sent: Wednesday, April 20, 2005 9:48 PM >> Subject: Re: [Dev-C++] Error using void main (void) >> >> >> That's what it should say as it really should be >> >> int main() or with all the other goodies inside the brackets. If you >> read across it says"int main void for the two ( )'s for the void here! >> >> Verne >> The GRIN Genius who knows nothing! >> >> Warnings are mostly ignorable, or nice if you like to write clean >> portable code. main should always return an int as that's the exit >> value that the executable gives to DOS/Win/Linux upon completion. >> Source should compile and run with a void main. However, main's exit >> value will then always be 0 and therefore useless to test for a certain >> execution completion status. >> >> Alexsandro Meireles <mei...@gm...> wrote: >> Hi, all! >> >> I tried to use the following expression in Dev-C++ >> >> void main (void) >> >> The compiler give a warning message "output of main is not int". >> Something like that. Although it gives this warning it compilies well. >> Why this happens? Main should always have a return type? >> >> Tks in advance! >> >> -- >> Alexsandro Meireles >> >> >> >> Alfred P. Reaud |
|
From: Per W. <pw...@ia...> - 2005-04-21 18:01:19
|
For small objects, an inlined copy function might be better, but for
larger blocks, the memcpy() function is optimized to switch over to 32-bit
(or larger) moves for maximum performance, i.e. it definitely wins over a
char* copy.
By the way, a couple of problems with the code:
No (char*)i - you wan't to declare i as a variable, not typecast it to
char*.
Second, avoid extra variables. Your code is using 4 variables. Instead of
creating a new variable i and do begin+i you should increment begin.
Besides using a variable less, it also optimizes the memory reference for
some processors.
A low-end memcpy() looks something like:
void* copy(void *dst,void *src,unsigned size) {
char* orig_dst = dst;
char* end = (char*)src + size;
while ((char*)src < end) {
*((char*)dst)++ = *((char*)src)++;
}
return orig_dst;
}
A normal memcpy() will do some optional single byte copies at start to get
word-aligned, and then do several unrolled word-copies (as large word as
possible, i.e. normally 32 or 64 bit) and then end with some optional
single-byte copies again.
If data is known to always be well-aligned and of a reasonable size, a
better code would be (pseudo-code):
void* copy(void *dst,void *src,unsigned size) {
// Observe: Code assumes that src and dst are aligned to sizeof(long)
// If they are not, one or more single-byte copy are needed...
void* orig_dst = dst;
unsigned r = size % sizeof(unsigned long);
unsigned count = size / sizeof(unsigned long);
if (size >= 4) {
// Unroll loop 4 times.
size >>= 2;
r += 4*sizeof(unsigned long);
} else {
// Too small block to unroll.
r += 4*size;
size = 0;
}
for (;size; size--) {
*((unsigned long*)dst)++ = *((unsigned long*)src)++;
*((unsigned long*)dst)++ = *((unsigned long*)src)++;
*((unsigned long*)dst)++ = *((unsigned long*)src)++;
*((unsigned long*)dst)++ = *((unsigned long*)src)++;
}
// r and this code not needed if size is a multiple of sizeof(long)
for (;r; r--) {
*((char*)dst)++ = *((char*)src)++;
}
return *orig_dst;
}
In reality, this kind of code is written in assembler, to allow further
optimizations by for example using calculated jumps into the unrolling
code. Also, some processors have special instructions for memory transfer
operations.
/Per W
On Thu, 21 Apr 2005 Mat...@Ve... wrote:
> Alright. Once you have overloaded an operator, you are stuck with that
> operator. However, overloaded operators apply on a class by class basis. The
> HugeStuff type will not use the operator= that you defined for your class.
> Can you think of a way to refactor your operator= to operate in terms of the
> default operator= define for type HugeStuff?
>
> Also, memcpy should be very fast. If it's not, try rolling your own. It
> might work something like the below code. Also make sure you enable -O3
> -fexpensive-optimizations when you build the code. You might also need -mcpu
> and -mtune.
>
> Some routines benefit heavily from optimization. Copy-heavy routines seem to
> need help with this. When I wrote a crypto algorithm a while ago, it doubled
> the speed to optimize it fully.
>
> void copy(void* begin, void* end, void* dest)
> {
> for((char*) i=0; i<(char*)end; i++)
> {
> *(char*)dest=(char*)(begin+i);
> }
> }
>
> HTH!
> Matt
> -----Original Message-----
> From: dev...@li...
> [mailto:dev...@li...]On Behalf Of Francesco
> Sent: Thursday, April 21, 2005 3:02 AM
> To: Alfred P. Reaud
> Cc: Dev C++
> Subject: Re: [Dev-C++] Shallow copy
>
>
> Thanks for answering Alfred,
> I'm already using the STL but since I'm still in a learning stage I was
> trying to understand the "inner workings". Suppose I'm building ( just for
> my own pleasure :-) ) a simple competitor to the vector template. Or to make
> it even more banal, suppose I have the following code:
>
>
> class MyData
> {
> typeHugeStuff * mHugeStuffPtr;
> // ....
> public:
> // ....
> MyData const & operator=( MyData const & inMyData ); // the
> definition of this copies also the stuff pointed to by mHugeStuffPtr
> // .....
> };
>
>
> template< typename T >
> void MySwap( T * inDataPtr1, T * inDataPtr2 )
> {
> #ifdef BAD_SWAP
> // the following will swap in memory the two objects but will also
> deallocate/allocate/copy hugeStuff
> T tempData;
>
>
> tempData = *inDataPtr1;
> *inDataPtr1 = *inDataPtr2;
> *inDataPtr2 = tempData;
> #else
> // the following will just swap bitwise the members of the two
> objects without erasing/duplicating/whatever hugeStuff
> // but this bitwise copy seems to be slower than using the operator=
> (when it's not overloaded)
> // so I was wondering if it is possible to access the UNoverloaded
> operator= in objects that have overloaded it....
> char * aPtr;
>
>
> aPtr = (char*) malloc ( sizeof( T ) );
> memcpy( aPtr, inDataPtr1, sizeof( T ) );
> memcpy( inDataPtr1, inDataPtr2, sizeof( T ) );
> memcpy( inDataPtr2, aPtr, sizeof( T ) );
> free( aPtr );
> #endif
> }
>
>
> void main( void )
> {
> MyData * aDataPtr;
>
> aDataPtr = new MyData[ 100 ];
> FillUp( aDataPtr, 100 ); // filling up with data
> MySwap< MyData >( aDataPtr + 20, aDataPtr + 40 ); // just
> because.... :-)
> }
>
>
> Thanks in advance for any insight,
> Francesco
>
>
> On Apr 20, 2005, at 7:46 PM, Alfred P. Reaud wrote:
>
>
> Hi Francesco,
>
> Your array of class objects would be better served if it where a list or
> vector of class objects instead of an array. Then you can use the iterator
> features, including list and vector specific swap and sort member functions.
> I f you must use an array of class objects, then there's always the
> <algorithm> standard template library header. Algorithm has a rich set of
> functions that include swap, sort, and other useful data manipulation
> algorithms such as unique, etc. These functions are usually optimized, and
> work in most instances significantly better than manually coded swap or sort
> functions.
>
> I'm not actually sure what you mean by "deep copy", however, I'm assuming
> that you mean actual data copying. You shouldn't be copying data to swap
> it! You should be swapping pointers to the data. Maybe the issue is in
> using a class class_objects[array_size]; declaration vs. a class
> *class_objects; declaration, because the overloaded operator= may operate in
> a different fashion between a pointer and an array element (i.e.
> class_objects[7], is a pointer, but in machine code is actually a set of
> pointer arithmetic operations). The class operator= should already be
> configured to correctly do something like:
>
> class *obj_a, *obj_b, *temp;
> obj_a = new class; ...;
> temp = obj_a; obj_a = obj_b; obj_b = temp;
> delete(temp); ...
>
> so that should work correctly, ***** however *****
>
>
>
> list<class> obj_list;
> list<class>::iterator obj_iter;
> obj_list.push_back(obj_a); ...
> obj_iter = obj_list.begin();
> obj_list.sort() or obj_list.sort( compare_function );
> ...
>
> is easier, more elegant, and uses the optimized features of C++! Hopefully
> the above helps!
>
>
> Francesco <xtr...@vi...> wrote:
> Hi everybody,
> I'm a total beginner and I have the following problem:
> I have an array of objects instantiated from a class that has member
> pointers to dynamically allocated data. This class has also the usual
> overloaded operator=. I have to sort this array and I need to do some
> swapping. But swapping by "deep copy" seems useless to me in this case,
> thus is it possible somehow to override the overloaded operator= and
> use just for the swapping the normal operator =? I could use memcpy for
> a bitwise copy, but it seems to be significantly slower, especially
> for small objects.
> Thanks in advance,
> Francesco
> <snip>
>
>
>
>
> Alfred P. Reaud
> <image.tiff>
> ___________________________________________________________________
> The information contained in this message and any attachment may be
> proprietary, confidential, and privileged or subject to the work
> product doctrine and thus protected from disclosure. If the reader
> of this message is not the intended recipient, or an employee or
> agent responsible for delivering this message to the intended
> recipient, you are hereby notified that any dissemination,
> distribution or copying of this communication is strictly prohibited.
> If you have received this communication in error, please notify me
> immediately by replying to this message and deleting it and all
> copies and backups thereof. Thank you.
>
>
>
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> Dev-cpp-users mailing list
> Dev...@li...
> TO UNSUBSCRIBE: http://www23.brinkster.com/noicys/devcpp/ub.htm
> https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
>
|
|
From: <Mat...@Ve...> - 2005-04-21 17:03:43
|
Alright. Once you have overloaded an operator, you are stuck with that
operator. However, overloaded operators apply on a class by class basis. The
HugeStuff type will not use the operator= that you defined for your class.
Can you think of a way to refactor your operator= to operate in terms of the
default operator= define for type HugeStuff?
Also, memcpy should be very fast. If it's not, try rolling your own. It
might work something like the below code. Also make sure you enable -O3
-fexpensive-optimizations when you build the code. You might also need -mcpu
and -mtune.
Some routines benefit heavily from optimization. Copy-heavy routines seem to
need help with this. When I wrote a crypto algorithm a while ago, it doubled
the speed to optimize it fully.
void copy(void* begin, void* end, void* dest)
{
for((char*) i=0; i<(char*)end; i++)
{
*(char*)dest=(char*)(begin+i);
}
}
HTH!
Matt
-----Original Message-----
From: dev...@li...
[mailto:dev...@li...]On Behalf Of Francesco
Sent: Thursday, April 21, 2005 3:02 AM
To: Alfred P. Reaud
Cc: Dev C++
Subject: Re: [Dev-C++] Shallow copy
Thanks for answering Alfred,
I'm already using the STL but since I'm still in a learning stage I was
trying to understand the "inner workings". Suppose I'm building ( just for
my own pleasure :-) ) a simple competitor to the vector template. Or to make
it even more banal, suppose I have the following code:
class MyData
{
typeHugeStuff * mHugeStuffPtr;
// ....
public:
// ....
MyData const & operator=( MyData const & inMyData ); // the
definition of this copies also the stuff pointed to by mHugeStuffPtr
// .....
};
template< typename T >
void MySwap( T * inDataPtr1, T * inDataPtr2 )
{
#ifdef BAD_SWAP
// the following will swap in memory the two objects but will also
deallocate/allocate/copy hugeStuff
T tempData;
tempData = *inDataPtr1;
*inDataPtr1 = *inDataPtr2;
*inDataPtr2 = tempData;
#else
// the following will just swap bitwise the members of the two
objects without erasing/duplicating/whatever hugeStuff
// but this bitwise copy seems to be slower than using the operator=
(when it's not overloaded)
// so I was wondering if it is possible to access the UNoverloaded
operator= in objects that have overloaded it....
char * aPtr;
aPtr = (char*) malloc ( sizeof( T ) );
memcpy( aPtr, inDataPtr1, sizeof( T ) );
memcpy( inDataPtr1, inDataPtr2, sizeof( T ) );
memcpy( inDataPtr2, aPtr, sizeof( T ) );
free( aPtr );
#endif
}
void main( void )
{
MyData * aDataPtr;
aDataPtr = new MyData[ 100 ];
FillUp( aDataPtr, 100 ); // filling up with data
MySwap< MyData >( aDataPtr + 20, aDataPtr + 40 ); // just
because.... :-)
}
Thanks in advance for any insight,
Francesco
On Apr 20, 2005, at 7:46 PM, Alfred P. Reaud wrote:
Hi Francesco,
Your array of class objects would be better served if it where a list or
vector of class objects instead of an array. Then you can use the iterator
features, including list and vector specific swap and sort member functions.
I f you must use an array of class objects, then there's always the
<algorithm> standard template library header. Algorithm has a rich set of
functions that include swap, sort, and other useful data manipulation
algorithms such as unique, etc. These functions are usually optimized, and
work in most instances significantly better than manually coded swap or sort
functions.
I'm not actually sure what you mean by "deep copy", however, I'm assuming
that you mean actual data copying. You shouldn't be copying data to swap
it! You should be swapping pointers to the data. Maybe the issue is in
using a class class_objects[array_size]; declaration vs. a class
*class_objects; declaration, because the overloaded operator= may operate in
a different fashion between a pointer and an array element (i.e.
class_objects[7], is a pointer, but in machine code is actually a set of
pointer arithmetic operations). The class operator= should already be
configured to correctly do something like:
class *obj_a, *obj_b, *temp;
obj_a = new class; ...;
temp = obj_a; obj_a = obj_b; obj_b = temp;
delete(temp); ...
so that should work correctly, ***** however *****
list<class> obj_list;
list<class>::iterator obj_iter;
obj_list.push_back(obj_a); ...
obj_iter = obj_list.begin();
obj_list.sort() or obj_list.sort( compare_function );
...
is easier, more elegant, and uses the optimized features of C++! Hopefully
the above helps!
Francesco <xtr...@vi...> wrote:
Hi everybody,
I'm a total beginner and I have the following problem:
I have an array of objects instantiated from a class that has member
pointers to dynamically allocated data. This class has also the usual
overloaded operator=. I have to sort this array and I need to do some
swapping. But swapping by "deep copy" seems useless to me in this case,
thus is it possible somehow to override the overloaded operator= and
use just for the swapping the normal operator =? I could use memcpy for
a bitwise copy, but it seems to be significantly slower, especially
for small objects.
Thanks in advance,
Francesco
<snip>
Alfred P. Reaud
<image.tiff>
___________________________________________________________________
The information contained in this message and any attachment may be
proprietary, confidential, and privileged or subject to the work
product doctrine and thus protected from disclosure. If the reader
of this message is not the intended recipient, or an employee or
agent responsible for delivering this message to the intended
recipient, you are hereby notified that any dissemination,
distribution or copying of this communication is strictly prohibited.
If you have received this communication in error, please notify me
immediately by replying to this message and deleting it and all
copies and backups thereof. Thank you.
|
|
From: Per W. <pw...@ia...> - 2005-04-21 16:50:15
|
Note that main() is ONLY allowed for C programs, where a symbol without a declared data type defaults to int, i.e. main() in reality means: int main() in a C program. For C++ programs, you MUST actually use int main() since the ISO C++ standard requires it. Yes, I know that g++ do accept the lazy form and only emits "warning: ISO C++ forbids declaration of `main=B4 with no type" if warnings are enabled. However, don't assume something about how other compilers look at ISO compliance requirements! /Per W On Thu, 21 Apr 2005, Austin Scholze wrote: > also, I have found in dev-C++ that you may just use > > main() > > without actually initializing it and that it will exit at the end of the = function. > ----- Original Message ----- > From: Verne H. Bohlender > To: Dev C++ ; Alfred P. Reaud > Sent: Wednesday, April 20, 2005 9:48 PM > Subject: Re: [Dev-C++] Error using void main (void) > > > That's what it should say as it really should be > > int main() or with all the other goodies inside the brackets. If you r= ead across it says"int main void for the two ( )'s for the void here! > > Verne > The GRIN Genius who knows nothing! > > Warnings are mostly ignorable, or nice if you like to write clean por= table code. main should always return an int as that's the exit value that= the executable gives to DOS/Win/Linux upon completion. Source should comp= ile and run with a void main. However, main's exit value will then always = be 0 and therefore useless to test for a certain execution completion statu= s. > > Alexsandro Meireles <mei...@gm...> wrote: > Hi, all! > > I tried to use the following expression in Dev-C++ > > void main (void) > > The compiler give a warning message "output of main is not int". So= mething like that. Although it gives this warning it compilies well. Why th= is happens? Main should always have a return type? > > Tks in advance! > > -- > Alexsandro Meireles > > > > Alfred P. Reaud > > |
|
From: Austin S. <Aus...@co...> - 2005-04-21 15:46:51
|
also, I have found in dev-C++ that you may just use
main()
without actually initializing it and that it will exit at the end of the =
function.
----- Original Message -----=20
From: Verne H. Bohlender=20
To: Dev C++ ; Alfred P. Reaud=20
Sent: Wednesday, April 20, 2005 9:48 PM
Subject: Re: [Dev-C++] Error using void main (void)
That's what it should say as it really should be=20
int main() or with all the other goodies inside the brackets. If you =
read across it says"int main void for the two ( )'s for the void here!
Verne=20
The GRIN Genius who knows nothing!
Warnings are mostly ignorable, or nice if you like to write clean =
portable code. main should always return an int as that's the exit =
value that the executable gives to DOS/Win/Linux upon completion. =
Source should compile and run with a void main. However, main's exit =
value will then always be 0 and therefore useless to test for a certain =
execution completion status.
Alexsandro Meireles <mei...@gm...> wrote:
Hi, all!
I tried to use the following expression in Dev-C++
void main (void)
The compiler give a warning message "output of main is not int". =
Something like that. Although it gives this warning it compilies well. =
Why this happens? Main should always have a return type?
Tks in advance!
--=20
Alexsandro Meireles=20
Alfred P. Reaud
|
|
From: Francesco <xtr...@vi...> - 2005-04-21 09:54:49
|
Thanks for answering Alfred,
I'm already using the STL but since I'm still in a learning stage I was=20=
trying to understand the "inner workings". Suppose I'm building ( just=20=
for my own pleasure :-) ) a simple competitor to the vector template.=20=
Or to make it even more banal, suppose I have the following code:
class MyData
{
typeHugeStuff * mHugeStuffPtr;
// ....
public:
// ....
MyData const & operator=3D( MyData const & inMyData ); // the =
definition=20
of this copies also the stuff pointed to by mHugeStuffPtr
// .....
};
template< typename T >
void MySwap( T * inDataPtr1, T * inDataPtr2 )
{
#ifdef BAD_SWAP
// the following will swap in memory the two objects but will =
also=20
deallocate/allocate/copy hugeStuff
T tempData;
tempData =3D *inDataPtr1;
*inDataPtr1 =3D *inDataPtr2;
*inDataPtr2 =3D tempData;
#else
// the following will just swap bitwise the members of the two =
objects=20
without erasing/duplicating/whatever hugeStuff
// but this bitwise copy seems to be slower than using the =
operator=3D=20
(when it's not overloaded)
// so I was wondering if it is possible to access the =
UNoverloaded=20
operator=3D in objects that have overloaded it....
char * aPtr;
aPtr =3D (char*) malloc ( sizeof( T ) );
memcpy( aPtr, inDataPtr1, sizeof( T ) );
memcpy( inDataPtr1, inDataPtr2, sizeof( T ) );
memcpy( inDataPtr2, aPtr, sizeof( T ) );
free( aPtr );
#endif
}
void main( void )
{
MyData * aDataPtr;
=09
aDataPtr =3D new MyData[ 100 ];
FillUp( aDataPtr, 100 ); // filling up with data
MySwap< MyData >( aDataPtr + 20, aDataPtr + 40 ); // just =
because.... =20
:-)
}
Thanks in advance for any insight,
Francesco
On Apr 20, 2005, at 7:46 PM, Alfred P. Reaud wrote:
> Hi Francesco,
> =A0
> Your array of class objects would be better served if it where a list=20=
> or vector of class objects instead of an array.=A0 Then you can use =
the=20
> iterator features, including list and vector specific swap and sort=20
> member functions.=A0 I f you must use an array of class objects, =
then=20
> there's always the <algorithm> standard template library header.=A0=20
> Algorithm has a rich set of functions that include swap, sort, and=20
> other useful data manipulation algorithms such as unique, etc.=A0 =
These=20
> functions are usually optimized, and work in most instances=20
> significantly better than manually coded swap or sort functions.
> =A0
> I'm not actually sure what you mean by "deep copy", however, I'm=20
> assuming that you mean actual data copying.=A0 You shouldn't be =
copying=20
> data to swap it!=A0 You should be swapping pointers to the data.=A0 =
Maybe=20
> the issue is in using a class class_objects[array_size]; declaration=20=
> vs. a class *class_objects; declaration, because the overloaded=20
> operator=3D may operate in a different fashion between a pointer and =
an=20
> array element (i.e. class_objects[7], is a pointer, but in machine=20
> code is actually a set of pointer arithmetic operations).=A0 The class=20=
> operator=3D should already be configured to correctly do something =
like:
> =A0
> class *obj_a, *obj_b, *temp;
> obj_a =3D new class; ...;
> temp =3D obj_a; obj_a =3D obj_b; obj_b =3D temp;
> delete(temp); ...
> =A0
> so that should work correctly, ***** however *****
> =A0
>
> list<class> obj_list;
> list<class>::iterator obj_iter;
> obj_list.push_back(obj_a); ...
> obj_iter =3D obj_list.begin();
> obj_list.sort() or obj_list.sort( compare_function );
> ...
> =A0
> is easier, more elegant, and uses the optimized features of C++!=A0=20
> Hopefully the above helps!
>
> Francesco <xtr...@vi...> wrote:
> Hi everybody,
> I'm a total beginner and I have the following problem:
> I have an array of objects instantiated from a class that has member
> pointers to dynamically allocated data. This class has also the usual
> overloaded operator=3D. I have to sort this array and I need to do =
some
> swapping. But swapping by "deep copy" seems useless to me in this=20
> case,
> thus is it possible somehow to override the overloaded operator=3D =
and
> use just for the swapping the normal operator =3D? I could use memcpy=20=
> for
> a bitwise copy, but it seems to be significantly slower, especially
> for small objects.
> Thanks in advance,
> Francesco
> <snip>
>
>
>
> Alfred P. Reaud
> <image.tiff>
|
|
From: Verne H. B. <ve...@sy...> - 2005-04-21 01:48:33
|
That's what it should say as it really should be=20
int main() or with all the other goodies inside the brackets. If you =
read across it says"int main void for the two ( )'s for the void here!
Verne=20
The GRIN Genius who knows nothing!
Warnings are mostly ignorable, or nice if you like to write clean =
portable code. main should always return an int as that's the exit =
value that the executable gives to DOS/Win/Linux upon completion. =
Source should compile and run with a void main. However, main's exit =
value will then always be 0 and therefore useless to test for a certain =
execution completion status.
Alexsandro Meireles <mei...@gm...> wrote:
Hi, all!
I tried to use the following expression in Dev-C++
void main (void)
The compiler give a warning message "output of main is not int". =
Something like that. Although it gives this warning it compilies well. =
Why this happens? Main should always have a return type?
Tks in advance!
--=20
Alexsandro Meireles=20
Alfred P. Reaud
|
|
From: Alfred P. R. <al...@ya...> - 2005-04-21 01:32:18
|
Warnings are mostly ignorable, or nice if you like to write clean portable code. main should always return an int as that's the exit value that the executable gives to DOS/Win/Linux upon completion. Source should compile and run with a void main. However, main's exit value will then always be 0 and therefore useless to test for a certain execution completion status. Alexsandro Meireles <mei...@gm...> wrote: Hi, all! I tried to use the following expression in Dev-C++ void main (void) The compiler give a warning message "output of main is not int". Something like that. Although it gives this warning it compilies well. Why this happens? Main should always have a return type? Tks in advance! -- Alexsandro Meireles Alfred P. Reaud |
|
From: Alexsandro M. <mei...@gm...> - 2005-04-20 22:56:27
|
Hi, all! I tried to use the following expression in Dev-C++ void main (void) The compiler give a warning message "output of main is not int". Something= =20 like that. Although it gives this warning it compilies well. Why this=20 happens? Main should always have a return type? Tks in advance! --=20 Alexsandro Meireles |
|
From: Alfred P. R. <al...@ya...> - 2005-04-20 17:47:06
|
Hi Francesco, Your array of class objects would be better served if it where a list or vector of class objects instead of an array. Then you can use the iterator features, including list and vector specific swap and sort member functions. If you must use an array of class objects, then there's always the <algorithm> standard template library header. Algorithm has a rich set of functions that include swap, sort, and other useful data manipulation algorithms such as unique, etc. These functions are usually optimized, and work in most instances significantly better than manually coded swap or sort functions. I'm not actually sure what you mean by "deep copy", however, I'm assuming that you mean actual data copying. You shouldn't be copying data to swap it! You should be swapping pointers to the data. Maybe the issue is in using a class class_objects[array_size]; declaration vs. a class *class_objects; declaration, because the overloaded operator= may operate in a different fashion between a pointer and an array element (i.e. class_objects[7], is a pointer, but in machine code is actually a set of pointer arithmetic operations). The class operator= should already be configured to correctly do something like: class *obj_a, *obj_b, *temp; obj_a = new class; ...; temp = obj_a; obj_a = obj_b; obj_b = temp; delete(temp); ... so that should work correctly, ***** however ***** list<class> obj_list; list<class>::iterator obj_iter; obj_list.push_back(obj_a); ... obj_iter = obj_list.begin(); obj_list.sort() or obj_list.sort( compare_function ); ... is easier, more elegant, and uses the optimized features of C++! Hopefully the above helps! Francesco <xtr...@vi...> wrote: Hi everybody, I'm a total beginner and I have the following problem: I have an array of objects instantiated from a class that has member pointers to dynamically allocated data. This class has also the usual overloaded operator=. I have to sort this array and I need to do some swapping. But swapping by "deep copy" seems useless to me in this case, thus is it possible somehow to override the overloaded operator= and use just for the swapping the normal operator =? I could use memcpy for a bitwise copy, but it seems to be significantly slower, especially for small objects. Thanks in advance, Francesco <snip> Alfred P. Reaud |
|
From: Francesco <xtr...@vi...> - 2005-04-20 11:03:16
|
Hi everybody, I'm a total beginner and I have the following problem: I have an array of objects instantiated from a class that has member pointers to dynamically allocated data. This class has also the usual overloaded operator=. I have to sort this array and I need to do some swapping. But swapping by "deep copy" seems useless to me in this case, thus is it possible somehow to override the overloaded operator= and use just for the swapping the normal operator =? I could use memcpy for a bitwise copy, but it seems to be significantly slower, especially for small objects. Thanks in advance, Francesco |
|
From: Per W. <pw...@ia...> - 2005-04-17 19:59:22
|
Que? Just about every user of this list (you know Dev-Cpp users...) are using Windows builds. Normally the Makefile has a line: =2EPHONY: all all-before all-after clean clean-custom This informs make that if an explicit rule doesn't exist for all-before, then it may just ignore such a rule and define it as already processed. By the way - what's wrong with using normal text mails to this list? Everyone isn't using html mail clients! /Per W On Sun, 17 Apr 2005, Verne H. Bohlender wrote: > Of course! If anyone is trying to compile C++ code under a Window set up= it just won't work. Windows is completely different. > Verne > ----- Original Message ----- > From: Dar=EDo > To: Dev C++ > Sent: Sunday, April 17, 2005 12:30 PM > Subject: Re: [Dev-C++] Linking error > > > I tried to compile the example hello project and I had that problem. So= I coud not compile anithing else. > But, if I compile in console mode by g++ hello.cpp It works > ----- Original Message ----- > From: Verne H. Bohlender > To: Dev C++ ; dario griffo > Sent: Sunday, April 17, 2005 11:49 AM > Subject: Re: [Dev-C++] Linking error > > > Need a sample in order to help you! > Verne > ----- Original Message ----- > From: dario griffo > To: dev...@li... > Sent: Saturday, April 16, 2005 7:25 PM > Subject: [Dev-C++] Linking error > > > Hi, I=B4m new at the list. > I woould like to know if you can help with this. > When I compile the project (any) i got this message: > 'all-before' does not exist - don't know to make it. > Anyone can give me a hand??? > Thanks... > __________________________________________________ > Correo Yahoo! > Espacio para todos tus mensajes, antivirus y antispam =A1gratis! > =A1Abr=ED tu cuenta ya! - http://correo.yahoo.com.ar > |
|
From: Verne H. B. <ve...@sy...> - 2005-04-17 18:50:02
|
Of course! If anyone is trying to compile C++ code under a Window set =
up it just won't work. Windows is completely different.
Verne
----- Original Message -----=20
From: Dar=EDo=20
To: Dev C++=20
Sent: Sunday, April 17, 2005 12:30 PM
Subject: Re: [Dev-C++] Linking error
I tried to compile the example hello project and I had that problem. =
So I coud not compile anithing else.
But, if I compile in console mode by g++ hello.cpp It works
----- Original Message -----=20
From: Verne H. Bohlender=20
To: Dev C++ ; dario griffo=20
Sent: Sunday, April 17, 2005 11:49 AM
Subject: Re: [Dev-C++] Linking error
Need a sample in order to help you!
Verne
----- Original Message -----=20
From: dario griffo=20
To: dev...@li...=20
Sent: Saturday, April 16, 2005 7:25 PM
Subject: [Dev-C++] Linking error
Hi, I=B4m new at the list.
I woould like to know if you can help with this.
When I compile the project (any) i got this message:
'all-before' does not exist - don't know to make it.
Anyone can give me a hand???
Thanks...
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam =A1gratis!=20
=A1Abr=ED tu cuenta ya! - http://correo.yahoo.com.ar
|
|
From: <of...@ya...> - 2005-04-17 16:30:51
|
I tried to compile the example hello project and I had that problem. So =
I coud not compile anithing else.
But, if I compile in console mode by g++ hello.cpp It works
----- Original Message -----=20
From: Verne H. Bohlender=20
To: Dev C++ ; dario griffo=20
Sent: Sunday, April 17, 2005 11:49 AM
Subject: Re: [Dev-C++] Linking error
Need a sample in order to help you!
Verne
----- Original Message -----=20
From: dario griffo=20
To: dev...@li...=20
Sent: Saturday, April 16, 2005 7:25 PM
Subject: [Dev-C++] Linking error
Hi, I=B4m new at the list.
I woould like to know if you can help with this.
When I compile the project (any) i got this message:
'all-before' does not exist - don't know to make it.
Anyone can give me a hand???
Thanks...
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam =A1gratis!=20
=A1Abr=ED tu cuenta ya! - http://correo.yahoo.com.ar
|
|
From: Martin P. <mar...@gm...> - 2005-04-17 15:20:53
|
Hey, Couldn't this be missing rule how to make 'all-before' part of the=20 project in the makefile? If all-before is required in some other section=20 of the makefile but there is no section describing how to make this=20 part, then make (not linker) fails as it doesn't know what to do. Martin Verne H. Bohlender wrote: > *Need a sample in order to help you!* > *Verne* >=20 > ----- Original Message ----- > *From:* dario griffo <mailto:of...@ya...> > *To:* dev...@li... > <mailto:=09 > *Sent:* Saturday, April 16, 2005 7:25 PM > *Subject:* [Dev-C++] Linking error >=20 > Hi, I=B4m new at the list. > I woould like to know if you can help with this. > When I compile the project (any) i got this message: > 'all-before' does not exist - don't know to make it. > Anyone can give me a hand??? > Thanks... >=20 > __________________________________________________ > Correo Yahoo! > Espacio para todos tus mensajes, antivirus y antispam =A1gratis! > =A1Abr=ED tu cuenta ya! - http://correo.yahoo.com.ar >=20 |
|
From: Verne H. B. <ve...@sy...> - 2005-04-17 14:49:23
|
Need a sample in order to help you! Verne ----- Original Message -----=20 From: dario griffo=20 To: dev...@li...=20 Sent: Saturday, April 16, 2005 7:25 PM Subject: [Dev-C++] Linking error Hi, I=B4m new at the list. I woould like to know if you can help with this. When I compile the project (any) i got this message: 'all-before' does not exist - don't know to make it. Anyone can give me a hand??? Thanks... __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam =A1gratis!=20 =A1Abr=ED tu cuenta ya! - http://correo.yahoo.com.ar |
|
From: Jason B. <red...@ya...> - 2005-04-17 01:48:12
|
I know how to use BMPs and ICOs in my programs, but what about using GIFs, JPGs, and PNGs? |
|
From: Jason B. <red...@ya...> - 2005-04-17 01:44:43
|
My copy of the Win32 Help file is missing the implementation specs for the Media Control Interface. I do have some examples, but it would help to have a good solid example and, if possible, a pointer to some downloadable specs (I do not have my own internet connection, so MSDN is out of the question). Mostly I am concerned about high level audio, but any good pointers to low level audio help resources would be appreciated as well. I also wanted to know how to play other audio formats like MP3, AU, or even WMA using MCI. I would prefer not to use DirectX, but if this is the only option for such audio playback, I need a good download link for the SDK. Although I would prefer a more often used alternative open source library. Thank you. |
|
From: dario g. <of...@ya...> - 2005-04-16 23:25:17
|
Hi, I´m new at the list. I woould like to know if you can help with this. When I compile the project (any) i got this message: 'all-before' does not exist - don't know to make it. Anyone can give me a hand??? Thanks... __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar |
|
From: Verne H. B. <ve...@sy...> - 2005-04-16 20:20:48
|
I'm using XP so send the little program or put it in your next mail so = we can try same. =20 To any others reading this who haven't done so, do download the latest = upgrades for Deb C++ There's one great download I found and yet to = learn what all of it will do. Verne -----=20 Hi, all! I am facing problems using stdprn. I know that it is not supposed to = work within Windows XP.=20 How do I do to use something similar to stdprn within Windows XP? Regards, --=20 Alexsandro Meireles |
|
From: Alexsandro M. <mei...@gm...> - 2005-04-16 19:32:17
|
Hi, all! I am facing problems using stdprn. I know that it is not supposed to work= =20 within Windows XP.=20 How do I do to use something similar to stdprn within Windows XP? Regards, --=20 Alexsandro Meireles |
|
From: Alexsandro M. <mei...@gm...> - 2005-04-16 19:31:23
|
On 4/16/05, Alexsandro Meireles <mei...@gm...> wrote:=20 >=20 > Hi, all! > I am facing problems using stdprn. I know that it is not supposed to wor= k=20 > within Windows XP.=20 > How do I do to use something similar to stdprn within Windows XP? > Regards, >=20 > --=20 > Alexsandro Meireles=20 >=20 --=20 Alexsandro Meireles |