dev-cpp-users Mailing List for Dev-C++
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
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
(4) |
2
(7) |
3
(3) |
4
|
5
(2) |
6
(3) |
7
|
|
8
(3) |
9
(5) |
10
(6) |
11
(6) |
12
|
13
|
14
(2) |
|
15
|
16
(8) |
17
(20) |
18
(12) |
19
(4) |
20
(5) |
21
(8) |
|
22
(3) |
23
(2) |
24
(6) |
25
(4) |
26
(2) |
27
(5) |
28
(4) |
|
29
(2) |
30
|
31
(5) |
|
|
|
|
|
From: <Mat...@Ve...> - 2005-05-31 16:20:43
|
Well my advice to you would be to start with the simplest possible code, and
then work up to the complicated version. Also, when working with classes, it
helps to draw some kind of simple paper diagram. At my desk, I have posted
the diagrams of the <ios> hierarchy and the <stdexcept> hierarchy for
example.
Here would be some really trivial multi-class code. Note how you can catch a
runtime_error as an exception because runtime_error is based on exception.
If you look at the stdexcept system header or the docs for this header, you
can see how this works in more detail.
Also, google "C++ polymorphism" as well.
HTH!
Matt
#include <stdexcept>
#include <iostream>
using namespace std;
int main(int argc, char* argv)
{
try
{
throw runtime_error("foo");
}
catch (const exception& e)
{
cout << e.what();
return 1;
}
return 0;
}
-----Original Message-----
From: dev...@li...
[mailto:dev...@li...]On Behalf Of Sabree
Blackmon
Sent: Friday, May 27, 2005 5:52 PM
To: Dev-C++ Mailing List
Subject: [Dev-C++] Base classes....
Hello all,
I am making a plugin manager that loads dll's and stores pointers to the
imported classes in vector so users can request the classes when ever during
the program. However the problem lies in the fact that vectors or arrays can
only store one type of object in other words one type of class pointer which
will not work. I know that a base class pointer is compatible with a derived
class. I was thinking about creating a base class where all plugin classes
are derived from. I know this is possible because Crystal Space 3d uses the
same technique. I'm just not sure how. I've included the file where the base
class in Crystal Space is declared. Maybe someone can make some sense of it
all. I tried to reduce the file size, so if anyone need the rest just say
so. Thanks.
___________________________________________________________________
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: Martin D. <nex...@qu...> - 2005-05-31 13:53:23
|
Scott wrote: > Is there a way to remove the (what seems to be a page break) line > green or grey in colour that seems to do nothing except visually > impair my code... > > I cannot find any reference to it's name or use, in the Editor Options > etc... > > It's like a margin line? > > > Anyone? > > Cheers, > Scott. That annoying line is there actually to remind you how wide is the 80 column terminal screen. If you wish your code to be readable on one such thing, that line comes really handy. Happy coding, next_ghost |
|
From: Scott <mat...@gm...> - 2005-05-31 06:18:27
|
LOL, Doh! I can't believe i missed that!!!!!!! Thanks though... Cheers, Scott. > editor options, uncheck right margin visible |
|
From: Reid T. <rei...@at...> - 2005-05-31 03:52:39
|
Scott wrote: > Is there a way to remove the (what seems to be a page break) line > green or grey in colour that seems to do nothing except visually > impair my code... > > I cannot find any reference to it's name or use, in the Editor Options > etc... > > It's like a margin line? > > > Anyone? > > Cheers, > Scott. editor options, uncheck right margin visible |
|
From: Scott <mat...@gm...> - 2005-05-31 03:24:24
|
Is there a way to remove the (what seems to be a page break) line=20 green or grey in colour that seems to do nothing except visually impair = my code... I cannot find any reference to it's name or use, in the Editor Options = etc... It's like a margin line? Anyone? Cheers, Scott. |
|
From: Per W. <pw...@ia...> - 2005-05-29 09:59:43
|
The #ifndef HEADER_H... construct only protects from inclusion of a
specific header file once from the SAME C-filer. Not from inclusion by
multiple C files.
In the header file, you should normally write
extern int p;
and then in one of the C files write
int p;
Or you can modify the files to look like:
--- header.h ---
#ifndef HEADER_H
#define HEADER_H
#if defined IMPLEMENTATION
#define EXTERN
#else
#define EXTERN extern
#endif
EXTERN int p;
#endif
---------
--- main.c ---
#define IMPLEMENTATION
#include "header.h"
int main() {
...
}
----------
--- other.c ---
#include "header.h"
...
------------
/Per W
On Mon, 30 May 2005, Farzan Hajian wrote:
> Hi,
> Please help me with the following code. We have three files: a header file
> and two
> implementation files.
>
> // Source of "header.h"
> #ifndef HEADER_H
> #define HEADER_H
>
> int p;
>
> #endif
> --------------------------------
> // Source of "main.cpp"
> #include <cstdio>
> #include "header.h"
>
> int main()
> {
> printf("%i\n",p);
> return 0;
> }
> --------------------------------
> // Soruce of "func.cpp"
> #include "header.h"
> int func()
> {
> return p;
> }
>
> The compiler generates the error " multiple definition of 'p' ".
> What is wrong with the code?
> When the header file is included for the first time, the macro "HEADER_H"
> is defined
> but when the header file is included in the second implementation file,
> "HEADER_H" can not be recognized in the second file and "p" is define
|
|
From: Farzan H. <far...@ho...> - 2005-05-29 09:14:27
|
Hi,
Please help me with the following code. We have three files: a header fil=
e =20
and two
implementation files.
// Source of "header.h"
#ifndef HEADER_H
#define HEADER_H
int p;
#endif
--------------------------------
// Source of "main.cpp"
#include <cstdio>
#include "header.h"
int main()
{
printf("%i\n",p);
return 0;
}
--------------------------------
// Soruce of "func.cpp"
#include "header.h"
int func()
{
return p;
}
The compiler generates the error " multiple definition of 'p' ".
What is wrong with the code?
When the header file is included for the first time, the macro "HEADER_H"=
=20
is defined
but when the header file is included in the second implementation file,
"HEADER_H" can not be recognized in the second file and "p" is defined =20
once more!!
It seems macros have file scope.
Thanks,
--=20
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
|
|
From: <jal...@go...> - 2005-05-28 13:59:17
|
Outstandign my friend!! Nobody likes kiss-ass, but I must say... You guys in this group are the B= EST. Thanks Lucas your suggestion woked perfectly, just perfectly. Have an good weekend!! > I believe adding -mwindows to the project's linker options will fix thi= s. > > -Lukas > > On 5/27/05, jal...@go... <jal...@go...> wrote: >> YES!! >> It did the trick, but the DOS prompt pops up when I run the program, i= s >> there a fix for this? >> >> Thanks Daney and Per, you guys are the best!! > > > ------------------------------------------------------- > This SF.Net email is sponsored by Yahoo. > Introducing Yahoo! Search Developer Network - Create apps using Yahoo! > Search APIs Find out how you can build Yahoo! directly into your own > Applications - visit http://developer.yahoo.net/?fr=3Doffad-ysdn-ostg-q= 22005 > _______________________________________________ > 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: Sabree B. <sab...@ve...> - 2005-05-28 00:52:28
|
/*
Crystal Space Shared Class Facility (SCF)
Copyright (C) 1999 by Andrew Zabolotny
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __CSSCF_H__
#define __CSSCF_H__
#include "csextern.h"
/**\file
* Crystal Space Shared Class Facility (SCF)
*/
/**
* \addtogroup scf
* @{ */
class csPluginPaths;
#include "ref.h"
#include "array.h"
/**
* Type of registered interface handle used by iBase::QueryInterface().
*/
typedef unsigned long scfInterfaceID;
/**\def SCF_TRACE(x)
* Macro for typing debug strings: Add #define SCF_DEBUG at the top
* of modules you want to track miscelaneous SCF activity and recompile.
*/
/**
* This is the basic interface: all other interfaces should be
* derived from this one, this will allow us to always use at least
* some minimal functionality given any interface pointer.
*/
struct iBase
{
/// Increment the number of references to this object.
virtual void IncRef () = 0;
/// Decrement the reference count.
virtual void DecRef () = 0;
/// Get the ref count (only for debugging).
virtual int GetRefCount () = 0;
/// Query a particular interface implemented by this object.
virtual void *QueryInterface (scfInterfaceID iInterfaceID, int iVersion) = 0;
/**
* Query a particular interface implemented by an object.
* This version will test if 'ibase' is 0.
*/
static void* QueryInterfaceSafe (iBase* ibase, scfInterfaceID iInterfaceID,
int iVersion)
{
if (ibase == 0) return 0;
else return ibase->QueryInterface (iInterfaceID, iVersion);
}
/// For weak references: add a reference owner.
virtual void AddRefOwner (iBase** ref_owner) = 0;
/// For weak references: remove a reference owner.
virtual void RemoveRefOwner (iBase** ref_owner) = 0;
};
#ifdef CS_REF_TRACKER
#include <typeinfo>
#define CS_TYPENAME(x) typeid(x).name()
/* @@@ HACK: Force an AddAlias() call for every contained interface
* However, when iSCF::SCF == 0, don't call QI to prevent interface ID
* resolution (which will fail).
*/
#define SCF_INIT_TRACKER_ALIASES \
if (iSCF::SCF != 0) QueryInterface ((scfInterfaceID)-1, -1);
#else
#define CS_TYPENAME(x) 0
#define SCF_INIT_TRACKER_ALIASES
#endif
/**
* This macro should be embedded into any SCF-capable class definition
* to declare the minimal functionality required by iBase interface.
*/
#define SCF_DECLARE_IBASE \
int scfRefCount; /* Reference counter */ \
csArray<iBase**>* scfWeakRefOwners; \
void scfRemoveRefOwners (); \
SCF_DECLARE_EMBEDDED_IBASE (iBase)
/**
* SCF_DECLARE_EMBEDDED_IBASE is used to declare the methods of iBase inside
* an embedded class that is exposed via QueryInterface...
*/
#define SCF_DECLARE_EMBEDDED_IBASE(OuterClass) \
public: \
OuterClass *scfParent; /* The parent object */ \
virtual void IncRef (); \
virtual void DecRef (); \
virtual int GetRefCount (); \
virtual void AddRefOwner (iBase** ref_owner); \
virtual void RemoveRefOwner (iBase** ref_owner); \
virtual void *QueryInterface (scfInterfaceID iInterfaceID, int iVersion)
/**
* The SCF_CONSTRUCT_IBASE macro should be invoked inside the constructor
* of a class (not inside an embedded interface). Normally each
* constructor should accept an iBase* parameter (that is passed by
* scfCreateInstance function) which should be passed to this macro.
* The macro will zero the reference count and initialize the pointer
* to the parent object. If the object is unparented (a common case),
* it is okay to use null as the argument to this macro.
*/
#define SCF_CONSTRUCT_IBASE(Parent) \
csRefTrackerAccess::TrackConstruction (this); \
csRefTrackerAccess::SetDescription (this, CS_TYPENAME(*this)); \
scfRefCount = 1; \
scfWeakRefOwners = 0; \
scfParent = Parent; if (scfParent) scfParent->IncRef(); \
SCF_INIT_TRACKER_ALIASES
/**
* The SCF_CONSTRUCT_EMBEDDED_IBASE macro should be invoked inside the
* constructor of a class that has an embedded interface
* (not inside the constructor of the embedded interface).
* The macro will initialize the pointer to the parent object
* (to the object this one is embedded into). The argument to this macro
* is the name of the parent's instance variable by which the embedded
* object is known (typically something like `scfiFooBar').
*/
#define SCF_CONSTRUCT_EMBEDDED_IBASE(Interface) \
Interface.scfParent = this; \
csRefTrackerAccess::AddAlias (&Interface, this);
/**
* The SCF_DESTRUCT_IBASE macro should be invoked inside the destructor
* of a class (not inside an embedded interface). It reverses the
* initialization performed by the SCF_CONSTRUCT_IBASE() macro.
*/
#define SCF_DESTRUCT_IBASE() \
csRefTrackerAccess::TrackDestruction (this, scfRefCount); \
scfRemoveRefOwners ();
/**
* The SCF_DESTRUCT_EMBEDDED_IBASE macro should be invoked inside the
* destructor of a class that has an embedded interface (not inside the
* destructor of the embedded interface). It reverses the initialization
* performed by the SCF_CONSTRUCT_EMBEDDED_IBASE() macro.
*/
#define SCF_DESTRUCT_EMBEDDED_IBASE(Interface) \
csRefTrackerAccess::RemoveAlias (&Interface, this); \
Interface.scfParent = 0;
/**
* The SCF_IMPLEMENT_IBASE_INCREF() macro implements the IncRef() method for a
* class in a C++ source module. Typically, this macro is automatically
* employed by the SCF_IMPLEMENT_IBASE() convenience macro.
*/
#define SCF_IMPLEMENT_IBASE_INCREF(Class) \
void Class::IncRef () \
{ \
SCF_TRACE ((" (%s *)%p->IncRef (%d)\n", #Class, this, scfRefCount + 1));\
csRefTrackerAccess::TrackIncRef (this, scfRefCount); \
scfRefCount++; \
}
/**
* The SCF_IMPLEMENT_IBASE_DECREF() macro implements the DecRef() method for a
* class in a C++ source module. Typically, this macro is automatically
* employed by the SCF_IMPLEMENT_IBASE() convenience macro.
* <p>
* A note about the implementation: We do the "if" before the "scRefCount--"
* to make sure that calling Inc/DecRef doesn't result in a 2nd delete
*/
#define SCF_IMPLEMENT_IBASE_DECREF(Class) \
void Class::DecRef () \
{ \
csRefTrackerAccess::TrackDecRef (this, scfRefCount); \
if (scfRefCount == 1) \
{ \
SCF_TRACE ((" delete (%s *)%p\n", #Class, this)); \
scfRemoveRefOwners (); \
if (scfParent) \
scfParent->DecRef (); \
delete this; \
return; \
} \
scfRefCount--; \
}
/**
* The SCF_IMPLEMENT_IBASE_REMOVE_REF_OWNERS() macro implements the
* scfRemoveRefOwners() method for a class in a C++ source module. Typically,
* this macro is automatically employed by the SCF_IMPLEMENT_IBASE()
* convenience macro.
*/
#define SCF_IMPLEMENT_IBASE_REMOVE_REF_OWNERS(Class) \
void Class::scfRemoveRefOwners () \
{ \
if (!scfWeakRefOwners) return; \
for (size_t i = 0 ; i < scfWeakRefOwners->Length () ; i++) \
{ \
iBase** p = (*scfWeakRefOwners)[i]; \
*p = 0; \
} \
delete scfWeakRefOwners; \
scfWeakRefOwners = 0; \
}
/**
* The SCF_IMPLEMENT_IBASE_REFOWNER() macro implements the AddRefOwner()
* and RemoveRefOwner() for a weak reference.
*/
#define SCF_IMPLEMENT_IBASE_REFOWNER(Class) \
void Class::AddRefOwner (iBase** ref_owner) \
{ \
if (!scfWeakRefOwners) \
scfWeakRefOwners = new csArray<iBase**> (0, 4); \
scfWeakRefOwners->InsertSorted (ref_owner); \
} \
void Class::RemoveRefOwner (iBase** ref_owner) \
{ \
if (!scfWeakRefOwners) \
return; \
size_t index = scfWeakRefOwners->FindSortedKey ( \
csArrayCmp<iBase**, iBase**> (ref_owner)); \
if (index != csArrayItemNotFound) scfWeakRefOwners->DeleteIndex ( \
index); \
}
/**
* The SCF_IMPLEMENT_IBASE_GETREFCOUNT() macro implements GetRefCount()
* for a class in a C++ source module.
*/
#define SCF_IMPLEMENT_IBASE_GETREFCOUNT(Class) \
int Class::GetRefCount () \
{ \
return scfRefCount; \
}
/**
* The SCF_IMPLEMENT_IBASE_QUERY() macro implements the opening boilerplate for
* the QueryInterface() method for a class in a C++ source module. Typically,
* this macro is automatically employed by the SCF_IMPLEMENT_IBASE()
* convenience macro.
*/
#define SCF_IMPLEMENT_IBASE_QUERY(Class) \
void *Class::QueryInterface (scfInterfaceID iInterfaceID, int iVersion) \
{ \
SCF_TRACE ((" (%s *)%p->QueryInterface (%lu, %08X)\n", \
#Class, this, iInterfaceID, iVersion));
/**
* The SCF_IMPLEMENT_IBASE_QUERY_END macro implements the closing boilerplate
* for the QueryInterface() method for a class in a C++ source module.
* Typically, this macro is automatically employed by the
* SCF_IMPLEMENT_IBASE_END convenience macro.
*/
#define SCF_IMPLEMENT_IBASE_QUERY_END \
return scfParent ? \
scfParent->QueryInterface (iInterfaceID, iVersion) : 0; \
}
/**
* The SCF_IMPLEMENT_IBASE() macro should be used within the C++ source module
* that implements a interface derived from iBase. Of course, you can still
* implement those methods manually, if you desire ...
*/
#define SCF_IMPLEMENT_IBASE(Class) \
SCF_IMPLEMENT_IBASE_INCREF(Class) \
SCF_IMPLEMENT_IBASE_DECREF(Class) \
SCF_IMPLEMENT_IBASE_GETREFCOUNT(Class) \
SCF_IMPLEMENT_IBASE_REFOWNER(Class) \
SCF_IMPLEMENT_IBASE_REMOVE_REF_OWNERS(Class) \
SCF_IMPLEMENT_IBASE_QUERY(Class)
/**
* The SCF_IMPLEMENT_IBASE_END macro is used to finish an SCF_IMPLEMENT_IBASE
* definition
*/
#define SCF_IMPLEMENT_IBASE_END \
SCF_IMPLEMENT_IBASE_QUERY_END
/**
* The SCF_IMPLEMENT_EMBEDDED_IBASE_INCREF() macro implements the IncRef()
* method for an embedded class in a C++ source module. Typically, this macro
* is automatically employed by the SCF_IMPLEMENT_EMBEDDED_IBASE() convenience
* macro.
*/
#define SCF_IMPLEMENT_EMBEDDED_IBASE_INCREF(Class) \
void Class::IncRef () \
{ \
SCF_TRACE ((" (%s *)%p->IncRef (%d)\n", #Class, this, \
scfParent->GetRefCount () + 1)); \
scfParent->IncRef (); \
}
/**
* The SCF_IMPLEMENT_EMBEDDED_IBASE_DECREF() macro implements the DecRef()
* method for an embedded class in a C++ source module. Typically, this macro
* is automatically employed by the SCF_IMPLEMENT_EMBEDDED_IBASE() convenience
* macro.
*/
#define SCF_IMPLEMENT_EMBEDDED_IBASE_DECREF(Class) \
void Class::DecRef () \
{ \
SCF_TRACE ((" (%s *)%p->DecRef (%d)\n", #Class, this, \
scfParent->GetRefCount ()-1)); \
scfParent->DecRef (); \
}
/**
* The SCF_IMPLEMENT_EMBEDDED_IBASE_GETREFCOUNT() macro implements
* the GetRefCount() method for an embedded class in a C++ source module.
*/
#define SCF_IMPLEMENT_EMBEDDED_IBASE_GETREFCOUNT(Class) \
int Class::GetRefCount () \
{ \
return scfParent->GetRefCount (); \
}
/**
* The SCF_IMPLEMENT_EMBEDDED_IBASE_REFOWNER() macro implements the
* AddRefOwner() and RemoveRefOwner() for a weak reference.
*/
#define SCF_IMPLEMENT_EMBEDDED_IBASE_REFOWNER(Class) \
void Class::AddRefOwner (iBase** ref_owner) \
{ \
scfParent->AddRefOwner (ref_owner); \
} \
void Class::RemoveRefOwner (iBase** ref_owner) \
{ \
scfParent->RemoveRefOwner (ref_owner); \
}
/**
* The SCF_IMPLEMENT_EMBEDDED_IBASE_QUERY() macro implements the opening
* boilerplate for the QueryInterface() method for an embedded class in a C++
* source module. Typically, this macro is automatically employed by the
* SCF_IMPLEMENT_EMBEDDED_IBASE() convenience macro.
*/
#define SCF_IMPLEMENT_EMBEDDED_IBASE_QUERY(Class) \
void *Class::QueryInterface (scfInterfaceID iInterfaceID, int iVersion) \
{ \
SCF_TRACE ((" (%s *)%p->QueryInterface (%lu, %08X)\n", \
#Class, this, iInterfaceID, iVersion));
/**
* The SCF_IMPLEMENT_EMBEDDED_IBASE_QUERY_END macro implements the closing
* boilerplate for the QueryInterface() method for a class in an embedded C++
* source module. Typically, this macro is automatically employed by the
* SCF_IMPLEMENT_EMBEDDED_IBASE_END convenience macro.
*/
#define SCF_IMPLEMENT_EMBEDDED_IBASE_QUERY_END \
return scfParent->QueryInterface (iInterfaceID, iVersion); \
}
/**
* SCF_IMPLEMENT_EMBEDDED_IBASE should be used to implement embedded interfaces
* derived from iBase. It differs from SCF_IMPLEMENT_IBASE because embedded
* interface don't have reference counts themselves, but instead use the
* reference count of their parent object.
*/
#define SCF_IMPLEMENT_EMBEDDED_IBASE(Class) \
SCF_IMPLEMENT_EMBEDDED_IBASE_INCREF(Class) \
SCF_IMPLEMENT_EMBEDDED_IBASE_DECREF(Class) \
SCF_IMPLEMENT_EMBEDDED_IBASE_GETREFCOUNT(Class) \
SCF_IMPLEMENT_EMBEDDED_IBASE_REFOWNER(Class) \
SCF_IMPLEMENT_EMBEDDED_IBASE_QUERY(Class)
/**
* The SCF_IMPLEMENT_EMBEDDED_IBASE_END macro is used to finish an
* SCF_IMPLEMENT_EMBEDDED_IBASE definition
*/
#define SCF_IMPLEMENT_EMBEDDED_IBASE_END \
SCF_IMPLEMENT_EMBEDDED_IBASE_QUERY_END
/**
* The IMPLEMENT_INTERFACE macro is used inside QueryInterface function
* to check if user requested a specific interface, whenever requested
* version of the interface correspond to the version we have and to
* return a pointer to that interface if everything is correct.
*/
#define SCF_IMPLEMENTS_INTERFACE(Interface) \
csRefTrackerAccess::AddAlias (CS_STATIC_CAST(Interface*, this), this);\
SCF_IMPLEMENTS_INTERFACE_COMMON (Interface, this)
/**
* IMPLEMENT_EMBEDDED_INTERFACE is same as IMPLEMENT_INTERFACE but is used
* when class implements the interface as an embedded member.
*/
#define SCF_IMPLEMENTS_EMBEDDED_INTERFACE(Interface) \
SCF_IMPLEMENTS_INTERFACE_COMMON (Interface, (&scf##Interface))
/**
* This is a common macro used in all IMPLEMENTS_XXX_INTERFACE macros
*/
#define SCF_IMPLEMENTS_INTERFACE_COMMON(Interface,Object) \
static scfInterfaceID Interface##_scfID = (scfInterfaceID)-1; \
if (Interface##_scfID == (scfInterfaceID)-1) \
Interface##_scfID = iSCF::SCF->GetInterfaceID (#Interface); \
if (iInterfaceID == Interface##_scfID && \
scfCompatibleVersion (iVersion, scfInterface<Interface>::GetVersion())) \
{ \
(Object)->IncRef (); \
return CS_STATIC_CAST(Interface*, Object); \
}
/**
* The following macro is used in "expansion SCF classes". An expansion class
* is a class that extends the functionality of another SCF class. For
* example, suppose a class TheWolf that implements the iWolf interface.
* Separately it is a useful class per se, but if you want to implement an
* additional class TheDog that is a subclass of TheWolf and which implements
* an additional interface iDog in theory you should just override the
* QueryInterface method and return the corresponding pointer when asked. The
* following macro makes such overrides simpler to write.
*/
#define SCF_DECLARE_IBASE_EXT(ParentClass) \
typedef ParentClass __scf_superclass; \
virtual void IncRef (); \
virtual void DecRef (); \
virtual int GetRefCount (); \
virtual void AddRefOwner (iBase** ref_owner); \
virtual void RemoveRefOwner (iBase** ref_owner); \
virtual void *QueryInterface (scfInterfaceID iInterfaceID, int iVersion)
/**
* The SCF_IMPLEMENT_IBASE_EXT_INCREF() macro implements the IncRef() method
* for a class extending another SCF class in a C++ source module. Typically,
* this macro is automatically employed by the SCF_IMPLEMENT_IBASE_EXT()
* convenience macro.
*/
#define SCF_IMPLEMENT_IBASE_EXT_INCREF(Class) \
void Class::IncRef () \
{ \
__scf_superclass::IncRef (); \
}
/**
* The SCF_IMPLEMENT_IBASE_EXT_DECREF() macro implements the DecRef() method
* for a class extending another SCF class in a C++ source module. Typically,
* this macro is automatically employed by the SCF_IMPLEMENT_IBASE_EXT()
* convenience macro.
*/
#define SCF_IMPLEMENT_IBASE_EXT_DECREF(Class) \
void Class::DecRef () \
{ \
__scf_superclass::DecRef (); \
}
/**
* The SCF_IMPLEMENT_IBASE_EXT_GETREFCOUNT() macro implements the GetRefCount()
* method for a class extending another SCF class in a C++ source module.
* Typically, this macro is automatically employed by the
* SCF_IMPLEMENT_IBASE_EXT() convenience macro.
*/
#define SCF_IMPLEMENT_IBASE_EXT_GETREFCOUNT(Class) \
int Class::GetRefCount () \
{ \
return __scf_superclass::GetRefCount (); \
}
/**
* The SCF_IMPLEMENT_IBASE_EXT_REFOWNER() macro implements the
* AddRefOwner() and RemoveRefOwner() for a weak reference.
*/
#define SCF_IMPLEMENT_IBASE_EXT_REFOWNER(Class) \
void Class::AddRefOwner (iBase** ref_owner) \
{ \
__scf_superclass::AddRefOwner (ref_owner); \
} \
void Class::RemoveRefOwner (iBase** ref_owner) \
{ \
__scf_superclass::RemoveRefOwner (ref_owner); \
}
/**
* The SCF_IMPLEMENT_IBASE_EXT_QUERY() macro implements the opening boilerplate
* for the QueryInterface() method for a class extending another SCF class in a
* C++ source module. Typically, this macro is automatically employed by the
* SCF_IMPLEMENT_IBASE_EXT() convenience macro.
*/
#define SCF_IMPLEMENT_IBASE_EXT_QUERY(Class) \
void *Class::QueryInterface (scfInterfaceID iInterfaceID, int iVersion) \
{
/**
* The SCF_IMPLEMENT_IBASE_EXT_QUERY_END macro implements the closing
* boilerplate for the QueryInterface() method for a class extending another
* SCF class in a C++ source module. Typically, this macro is automatically
* employed by the SCF_IMPLEMENT_IBASE_EXT_END convenience macro.
*/
#define SCF_IMPLEMENT_IBASE_EXT_QUERY_END \
return __scf_superclass::QueryInterface (iInterfaceID, iVersion); \
}
/**
* This macro implements same functionality as SCF_IMPLEMENT_IBASE
* except that it should be used for expansion SCF classes.
*/
#define SCF_IMPLEMENT_IBASE_EXT(Class) \
SCF_IMPLEMENT_IBASE_EXT_INCREF(Class) \
SCF_IMPLEMENT_IBASE_EXT_DECREF(Class) \
SCF_IMPLEMENT_IBASE_EXT_GETREFCOUNT(Class) \
SCF_IMPLEMENT_IBASE_EXT_REFOWNER(Class) \
SCF_IMPLEMENT_IBASE_EXT_QUERY(Class)
/**
* This macro implements same functionality as SCF_IMPLEMENT_IBASE_END
* except that it is used for expansion SCF classes.
*/
#define SCF_IMPLEMENT_IBASE_EXT_END \
SCF_IMPLEMENT_IBASE_EXT_QUERY_END
/**
* The SCF_IMPLEMENT_FACTORY_INIT macro defines initialization code for a
* plugin module. This function should set the plugin-global iSCF::SCF
* variable, and otherwise initialize the plugin module. Although a version of
* this function will be created for each SCF factory exported by the plugin,
* SCF will call one, and only one, to perform the plugin initialization. The
* choice of which function will be invoked to initialize the plugin is an SCF
* implementation detail. You should not attempt to predict which
* class_scfInitialize() function will be used, nor should use try to sway
* SCF's choice. Implementation note: There are some rare instances where a
* particularly picky (and probably buggy) compiler does not allow C++
* expressions within a function declared `extern "C"'. For this reason, the
* iSCF::SCF variable is instead initialized in the Class_scfUnitInitialize()
* function which is not qualified as `extern "C"'.
*/
#ifdef CS_MEMORY_TRACKER
// This special version of SCF_IMPLEMENT_FACTORY_INIT will make sure that
// the memory tracker for this plugin is implemented.
#define SCF_IMPLEMENT_FACTORY_INIT(Class) \
static inline void Class ## _scfUnitInitialize(iSCF* SCF) \
{ \
iSCF::SCF = SCF; \
extern void mtiRegisterModule (char*); \
mtiRegisterModule (#Class); \
} \
CS_EXPORTED_FUNCTION \
void CS_EXPORTED_NAME(Class,_scfInitialize)(iSCF* SCF) \
{ Class ## _scfUnitInitialize(SCF); }
#else
#define SCF_IMPLEMENT_FACTORY_INIT(Class) \
static inline void Class ## _scfUnitInitialize(iSCF* SCF) \
{ iSCF::SCF = SCF; } \
CS_EXPORTED_FUNCTION \
void CS_EXPORTED_NAME(Class,_scfInitialize)(iSCF* SCF) \
{ Class ## _scfUnitInitialize(SCF); }
#endif
/**
* The SCF_IMPLEMENT_FACTORY_FINIS macro defines finalization code for a plugin
* module. As with SCF_IMPLEMENT_FACTORY_INIT, only one instance of this
* function will be invoked to finalize the module.
*/
#define SCF_IMPLEMENT_FACTORY_FINIS(Class) \
CS_EXPORTED_FUNCTION \
void CS_EXPORTED_NAME(Class,_scfFinalize)() \
{ \
CS_STATIC_VARIABLE_CLEANUP \
}
/**
* The SCF_IMPLEMENT_FACTORY_CREATE macro is used to define a factory for one
* of exported classes. You can define the function manually, of course, if
* the constructor for your class has some specific constructor arguments (that
* is, more than one iBase* argument).
*/
#define SCF_IMPLEMENT_FACTORY_CREATE(Class) \
CS_EXPORTED_FUNCTION \
void* CS_EXPORTED_NAME(Class,_Create)(iBase *iParent) \
{ \
void *ret = new Class (iParent); \
SCF_TRACE ((" %p = new %s ()\n", ret, #Class)); \
return ret; \
}
/**
* The SCF_IMPLEMENT_FACTORY macro is used to define a factory for one of
* exported classes. You can define the function manually, of course,
* if the constructor for your class has some specific constructor
* arguments (that is, more than one iBase* argument).
*/
#define SCF_IMPLEMENT_FACTORY(Class) \
SCF_IMPLEMENT_FACTORY_INIT(Class) \
SCF_IMPLEMENT_FACTORY_FINIS(Class) \
SCF_IMPLEMENT_FACTORY_CREATE(Class)
#define SCF_STATIC_CLASS_CONTEXT "*static*"
|
|
From: Lukas 'C. M. <gry...@gm...> - 2005-05-28 00:43:01
|
I believe adding -mwindows to the project's linker options will fix this. -Lukas On 5/27/05, jal...@go... <jal...@go...> wrote: > YES!! > It did the trick, but the DOS prompt pops up when I run the program, is > there a fix for this? >=20 > Thanks Daney and Per, you guys are the best!! |
|
From: Michal M. <mi...@mo...> - 2005-05-27 18:27:31
|
Hello developers, I'm going to release new version of devpaks.org web interface and I'm looking for betatesters. The beta version is available at http://beta.devpaks.org/ . It would be nice if somebody can play with it for a while, trying to add some devpaks etc. Don't hesitate to do whatever you can image with it, all data will be deleted before releasing it. Submit bugs at: http://sourceforge.net/tracker/?group_id=94270&atid=607298 and add feature requests at: http://sourceforge.net/tracker/?group_id=94270&atid=607301 For discussion use forum at: http://sourceforge.net/forum/forum.php?forum_id=326329 or discuss about starting categories structure at: http://sourceforge.net/forum/message.php?msg_id=3131265 You can also directly contact me at ad...@de... or ICQ #175762750. Thanks in advance, Michal |
|
From: <jal...@go...> - 2005-05-27 13:07:15
|
YES!! It did the trick, but the DOS prompt pops up when I run the program, is there a fix for this? Thanks Daney and Per, you guys are the best!! > When specifying `something` on the commandline, that means that > `something` is an application, and that the output of that application > should be used as command-line parameter. > > This is a quite common way to configure programs on Unix machines, but > Windows doesn't support this feature. > > Manually run whatever command is specified within `` and take the print= ed > output and insert instead (while removing the ``). > > /Per W > > On Fri, 27 May 2005 jal...@go... wrote: > >> Thank you Daniel for your prompt response. >> I did as you suggested and followed the instruction in the >> '.../gtk_win32_tutorial', it was very informative. However, when tryin= g >> to >> compile the program suggested by the above webpage I get the following >> error: >> Compiler: Default compiler >> --- >> Building Makefile: "C:\tmp\Makefile.win" >> Executing make... >> make.exe -f "C:\tmp\Makefile.win" all >> g++.exe -c main.cpp -o main.o >> -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" >> -mms-bitfields `pkg-config gtk+-2.0 --cflags` >> >> cc1plus.exe: error: unrecognized command line option "-fcflags`" >> >> g++.exe: `pkg-config: No such file or directory >> g++.exe: gtk+-2.0: No such file or directory >> >> make.exe: *** [main.o] Error 1 >> >> Execution terminated >> ---- >> >> What could be wrong? >> >> Again thanks so much for the help. >> > jal...@go... wrote: >> > >> >>I have installed the GTK+ runtime as well as the GTK+ development >> >>libraries on my MSW-XP; I would like to use Code::Block or Dev-C++ a= s >> the >> >>IDE, but I have found that none of these IDEs have default settings >> for >> >>GTK+. I have tried to get the right settings on my own, but to now >> avail. >> >>So, I was wondering if someone here could give me a hand on this one= . >> >> >> >> >> > >> > Maybe this can be of some help: >> > http://danielko.objectis.net/programming/gtk_win32_tutorial >> > >> > >> > -- >> > Daniel K. O. > > |
|
From: Daniel K. O. <dan...@ya...> - 2005-05-27 06:55:49
|
jal...@go... wrote: >What could be wrong? > > You could try reading until the end. The item [4] says exactly what Per W said. I think that this problem is related to the make version. Seems that yours isn't expanding the `` command. What's the output for "make --version"? Mine (MSYS' make.exe 3.79.1 and mingw32-make.exe 3.80) work fine. If I try "make --win32" then it gives the same error. -- Daniel K. O. ____________________________________________________ Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis! http://mail.yahoo.com.br |
|
From: Per W. <pw...@ia...> - 2005-05-27 03:57:54
|
When specifying `something` on the commandline, that means that `something` is an application, and that the output of that application should be used as command-line parameter. This is a quite common way to configure programs on Unix machines, but Windows doesn't support this feature. Manually run whatever command is specified within `` and take the printed output and insert instead (while removing the ``). /Per W On Fri, 27 May 2005 jal...@go... wrote: > Thank you Daniel for your prompt response. > I did as you suggested and followed the instruction in the > '.../gtk_win32_tutorial', it was very informative. However, when trying to > compile the program suggested by the above webpage I get the following > error: > Compiler: Default compiler > --- > Building Makefile: "C:\tmp\Makefile.win" > Executing make... > make.exe -f "C:\tmp\Makefile.win" all > g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" > -mms-bitfields `pkg-config gtk+-2.0 --cflags` > > cc1plus.exe: error: unrecognized command line option "-fcflags`" > > g++.exe: `pkg-config: No such file or directory > g++.exe: gtk+-2.0: No such file or directory > > make.exe: *** [main.o] Error 1 > > Execution terminated > ---- > > What could be wrong? > > Again thanks so much for the help. > > jal...@go... wrote: > > > >>I have installed the GTK+ runtime as well as the GTK+ development > >>libraries on my MSW-XP; I would like to use Code::Block or Dev-C++ as the > >>IDE, but I have found that none of these IDEs have default settings for > >>GTK+. I have tried to get the right settings on my own, but to now avail. > >>So, I was wondering if someone here could give me a hand on this one. > >> > >> > > > > Maybe this can be of some help: > > http://danielko.objectis.net/programming/gtk_win32_tutorial > > > > > > -- > > Daniel K. O. |
|
From: <jal...@go...> - 2005-05-27 03:21:39
|
Thank you Daniel for your prompt response. I did as you suggested and followed the instruction in the '.../gtk_win32_tutorial', it was very informative. However, when trying t= o compile the program suggested by the above webpage I get the following error: Compiler: Default compiler --- Building Makefile: "C:\tmp\Makefile.win" Executing make... make.exe -f "C:\tmp\Makefile.win" all g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include= " -mms-bitfields `pkg-config gtk+-2.0 --cflags` cc1plus.exe: error: unrecognized command line option "-fcflags`" g++.exe: `pkg-config: No such file or directory g++.exe: gtk+-2.0: No such file or directory make.exe: *** [main.o] Error 1 Execution terminated ---- What could be wrong? Again thanks so much for the help. > jal...@go... wrote: > >>I have installed the GTK+ runtime as well as the GTK+ development >>libraries on my MSW-XP; I would like to use Code::Block or Dev-C++ as t= he >>IDE, but I have found that none of these IDEs have default settings for >>GTK+. I have tried to get the right settings on my own, but to now avai= l. >>So, I was wondering if someone here could give me a hand on this one. >> >> > > Maybe this can be of some help: > http://danielko.objectis.net/programming/gtk_win32_tutorial > > > -- > Daniel K. O. > > > > > > ____________________________________________________ > Yahoo! Mail, cada vez melhor: agora com 1GB de espa=E7o gr=E1tis! > http://mail.yahoo.com.br > |
|
From: Daniel K. O. <dan...@ya...> - 2005-05-26 16:07:02
|
jal...@go... wrote: >I have installed the GTK+ runtime as well as the GTK+ development >libraries on my MSW-XP; I would like to use Code::Block or Dev-C++ as the >IDE, but I have found that none of these IDEs have default settings for >GTK+. I have tried to get the right settings on my own, but to now avail. >So, I was wondering if someone here could give me a hand on this one. > > Maybe this can be of some help: http://danielko.objectis.net/programming/gtk_win32_tutorial -- Daniel K. O. ____________________________________________________ Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis! http://mail.yahoo.com.br |
|
From: <jal...@go...> - 2005-05-26 14:20:51
|
Howdy folks! I have installed the GTK+ runtime as well as the GTK+ development libraries on my MSW-XP; I would like to use Code::Block or Dev-C++ as the IDE, but I have found that none of these IDEs have default settings for GTK+. I have tried to get the right settings on my own, but to now avail. So, I was wondering if someone here could give me a hand on this one. TIA |
|
From: Eric <eri...@cl...> - 2005-05-25 18:42:43
|
what did you say? converted to plain text Email to consevre Internet banwidth Mirosoft are winkers ----- Original Message ----- From: Gautham Nookala To: dev...@li... Sent: Thursday, May 26, 2005 5:51 AM Subject: [Dev-C++] (no subject) |
|
From: <Mat...@Ve...> - 2005-05-25 16:19:31
|
Set the compiler options in the preferences. -----Original Message----- From: dev...@li... [mailto:dev...@li...]On Behalf Of Gautham Nookala Sent: Wednesday, May 25, 2005 8:24 AM To: dev...@li... Subject: [Dev-C++] assembly listing How do I get the assembly listing for a C++ program? Using command line gcc the option -S gives me assembly output. How do I do the same in Dev-C++ IDE? ___________________________________________________________________ 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: Gautham N. <gau...@sb...> - 2005-05-25 15:23:52
|
How do I get the assembly listing for a C++ program? Using command line gcc the option -S gives me assembly output. How do I do the same in Dev-C++ IDE? |
|
From: Per W. <pw...@ia...> - 2005-05-24 19:45:30
|
Yes, it's plain text. /Per W On Tue, 24 May 2005, Guillermo Gutierrez wrote: > hopefully this now shows as plain text. > > > -----Original Message----- > > From: Guillermo Gutierrez > > Sent: Tuesday, May 24, 2005 8:20 AM > > To: 'dev...@li...' > > Subject: new version of Dev-cpp? > > > > When will we see a new version of Dev-C++, and will it include fixes for the display issues with the class browser? > > > > Guillermo Gutierrez > > Market Scan Information Systems > > Software Q.A. Supervisor > > (818) 575-2000 x2427 > > ggu...@ma... > > > > > ---------------------------- |
|
From: Guillermo G. <ggu...@ma...> - 2005-05-24 19:05:31
|
hopefully this now shows as plain text. > -----Original Message----- > From: Guillermo Gutierrez =20 > Sent: Tuesday, May 24, 2005 8:20 AM > To: 'dev...@li...' > Subject: new version of Dev-cpp? >=20 > When will we see a new version of Dev-C++, and will it include fixes = for the display issues with the class browser? >=20 > Guillermo Gutierrez > Market Scan Information Systems > Software Q.A. Supervisor > (818) 575-2000 x2427 > ggu...@ma... >=20 |
|
From: <Mat...@Ve...> - 2005-05-24 16:17:52
|
use the tolower and toupper functions -----Original Message----- From: dev...@li... [mailto:dev...@li...]On Behalf Of Patel, Nilesh M Sent: Tuesday, May 24, 2005 7:13 AM To: dev...@li... Subject: [Dev-C++] trying to minimize code Anyone know if there is a function call in c++ where if the user enters an 'A' or an 'a' it would be displayed as an 'A'. I know I can use an OR ( || ). Which I can use and works perfectly fine, but I was just curious is there was a function call in c++ that if any letter was entered it would be taken as a capital letter. I need to do this to about 15 letters. Any suggestions? Or should I just stick to the OR method. Thanks. -----Original Message----- From: dev...@li... [mailto:dev...@li...]On Behalf Of dev...@li... Sent: Saturday, May 21, 2005 11:15 PM To: dev...@li... Subject: Dev-cpp-users digest, Vol 1 #2427 - 8 msgs Send Dev-cpp-users mailing list submissions to dev...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/dev-cpp-users or, via email, send a message with subject or body 'help' to dev...@li... You can reach the person managing the list at dev...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of Dev-cpp-users digest..." ============================================================================ == The contents of this message, together with any attachments, are intended only for the use of the person(s) to which they are addressed and may contain confidential and/or privileged information. Further, any medical information herein is confidential and protected by law. It is unlawful for unauthorized persons to use, review, copy, disclose, or disseminate confidential medical information. If you are not the intended recipient, immediately advise the sender and delete this message and any attachments. Any distribution, or copying of this message, or any attachment, is prohibited. ============================================================================ == ------------------------------------------------------- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 _______________________________________________ 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 ___________________________________________________________________ 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: Guillermo G. <ggu...@ma...> - 2005-05-24 15:25:18
|
When will we see a new version of Dev-C++, and will it include fixes for = the display issues with the class browser? Guillermo Gutierrez Market Scan Information Systems Software Q.A. Supervisor (818) 575-2000 x2427 ggu...@ma... |
|
From: Per W. <pw...@ia...> - 2005-05-24 15:22:06
|
You think about: #include <ctype.h> int toupper(int c); int tolower(int c); There are also a couple of similar functions directly for the Win32 API, for Unicode, wide characters, ... Note that setlocale() affects treatment. /Per W On Tue, 24 May 2005, Patel, Nilesh M wrote: > Anyone know if there is a function call in c++ where if the user enters an 'A' or an 'a' it would be displayed as an 'A'. I know I can use an OR ( || ). Which I can use and works perfectly fine, but I was just curious is there was a function call in c++ that if any letter was entered it would be taken as a capital letter. I need to do this to about 15 letters. Any suggestions? Or should I just stick to the OR method. Thanks. > |