Á¤Àû ¸â¹ö´Â ÇÊ¿äÇÑ ¸ðµç °ÍÀ» °´Ã¼ ³»¿¡ µÐ´Ù´Â ĸ½¶È ¿øÄ¢¿¡ À§¹èµÇ´Â °Íó·³ º¸À̱⵵ Çϰí Á¤Àû ¸â¹ö º¯¼öÀÇ °æ¿ì ¼±¾ð°ú Á¤Àǰ¡ µÎ ¹ø ³ªÅ¸³ª±â ¶§¹®¿¡ ¹®¹ýÀûÀ¸·Îµµ Á¶±Ý ¾î»öÇØ º¸ÀδÙ. ±×·¯³ª ¹°¸®ÀûÀ¸·Î´Â °´Ã¼ ¹Ù±ù¿¡ ¼±¾ðµÇ¾î ÀÖÁö¸¸ ³í¸®ÀûÀ¸·Î Ŭ·¡½º¿¡ ¼ÓÇØ ÀÖ°í ¾×¼¼½º ÁöÁ¤¿¡ ÀÇÇØ Á¤º¸ ÀºÆóµµ °¡´ÉÇϹǷΠĸ½¶È À§¹ÝÀº ¾Æ´Ï´Ù. Á¤Àû ¸â¹öÀÇ °³³äÀÌ ²À ÇÊ¿äÇÑ ÀÌÀ¯´Â ¿©·¯ °¡Áö °æ¿ì¿¡ À̰ÍÀÌ ±²ÀåÈ÷ À¯¿ëÇϱ⠶§¹®ÀÌ´Ù. Á¤Àû ¸â¹ö¸¦ ÈǸ¢ÇÏ°Ô È°¿ëÇÏ´Â ¸î °¡Áö ¿¹¸¦ º¸µµ·Ï ÇÏÀÚ.
´Ü ÇÑ ¹ø¸¸ ÇØ¾ß ÇÏ´Â Àü¿ª ÀÚ¿øÀÇ ÃʱâÈ
µ¥ÀÌÅÍ º£À̽º ¿¬°áÀ̳ª ³×Æ®¿öÅ© ¿¬°á, À©µµ¿ì Ŭ·¡½º µî·Ï µî°ú °°ÀÌ ´Ü ÇÑ ¹ø¸¸ ÇÏ¸é µÇ´Â ÃʱâÈ´Â Á¤Àû ¸â¹ö ÇÔ¼ö¿¡¼ ÇÏ°í ±× °á°ú¸¦ Á¤Àû ¸â¹ö º¯¼ö¿¡ ÀúÀåÇÑ´Ù. ÀÌ·± Àü¿ª ÃʱâÈ´Â ÀϹÝÀûÀ¸·Î µÎ ¹ø ÇÒ Çʿ䵵 ¾ø°í µÎ ¹ø ÃʱâÈÇÏ´Â °ÍÀÌ Çã¿ëµÇÁöµµ ¾Ê´Â´Ù. ±×·¡¼ °´Ã¼º°·Î ÃʱâÈÇØ¼´Â ¾ÈµÇ¸ç Ŭ·¡½º ¼öÁØ¿¡¼ µü ÇÑ ¹ø¸¸ ÃʱâÈÇÏ°í ±× °á°ú´Â ¸ðµç °´Ã¼°¡ °øÀ¯ÇÑ´Ù.
µ¥ÀÌÅÍ º£À̽º¿¡¼ ÁúÀǸ¦ Çϴ Ŭ·¡½º¸¦ ¿¹·Î µé¾î º¸ÀÚ. ÁúÀǸ¦ Çϱâ À§Çؼ´Â ¸ÕÀú Á¤º¸°¡ ÀúÀåµÇ¾î ÀÖ´Â DB ¼¹ö¿¡ ¿¬°áÇÏ´Â ÀÎÁõ ÀýÂ÷¸¦ °ÅÃÄ¾ß ÇÑ´Ù. ¿¬°áÀ̳ª ÀÎÁõÀ̳ª µÎ ¹ø ÇÑ´Ù´Â °ÍÀº Àǹ̰¡ ¾øÀ¸¹Ç·Î ÇÑ ¹ø¸¸ ¿¬°áÇϰí ÀÌÈĺÎÅÍ´Â ¸ðµç ÁúÀÇ °´Ã¼°¡ ÀÌ ¿¬°áÀ» °øÀ¯ÇÏ¸é µÉ °ÍÀÌ´Ù. ´ÙÀ½Àº ÁúÀÇ Å¬·¡½ºÀÇ °¡»ó ÄÚµåÀÌ´Ù. ½ÇÁ¦ DB Á¢¼ÓÀ» ÇÏ·Á¸é º¹ÀâÇϱ⠶§¹®¿¡ °¡»ó Äڵ带 ¿¹·Î µé¾ú´Ù.
|
¿¹ Á¦ : GlobalInit |
#include <Turboc.h>
class DBQuery
{
private:
static HANDLE hCon;
int nResult;
public:
DBQuery() { };
static void DBConnect(char *Server, char *ID, char *Pass);
static void DBDisConnect();
BOOL RunQuery(char *SQL);
// ....
};
HANDLE DBQuery::hCon;
void DBQuery::DBConnect(char *Server, char *ID, char *Pass)
{
// ¿©±â¼ DB ¼¹ö¿¡ Á¢¼ÓÇÑ´Ù.
// hCon = Á¢¼Ó ÇÚµé
}
void DBQuery::DBDisConnect()
{
// Á¢¼ÓÀ» ÇØÁ¦ÇÑ´Ù.
// hCon=NULL;
}
BOOL DBQuery::RunQuery(char *SQL)
{
// Query(hCon,SQL);
return TRUE;
}
void main()
{
DBQuery::DBConnect("Secret","Adult","doemfdmsrkfk");
DBQuery Q1,Q2,Q3;
// ÇÊ¿äÇÑ DB ÁúÀǸ¦ ÇÑ´Ù.
// Q1.RunQuery("select * from tblBuja where ³ª¶û Ä£ÇÑ »ç¶÷");
DBQuery::DBDisConnect();
}
DB ¼¹ö¿ÍÀÇ ¿¬°áÀº DBConnect Á¤Àû ¸â¹ö ÇÔ¼ö°¡ ó¸®ÇÑ´Ù. ÀÌ ÇÔ¼ö´Â ¼¹ö À̸§, ID, ºñ¹Ð ¹øÈ£¸¦ Àμö·Î Àü´Þ¹Þ¾Æ DB ¼¹ö¿Í ¿¬°á ¹× ÀÎÁõÀ» ÇÏ°í ¿¬°á °á°ú´Â Á¤Àû ¸â¹ö º¯¼ö hCon¿¡ ÀúÀåÇÑ´Ù. Á¤Àû ¸â¹ö ÇÔ¼ö´Â Á¤Àû ¸â¹ö º¯¼ö¸¦ ¾×¼¼½ºÇÒ ¼ö ÀÖÀ¸¹Ç·Î DBConnect¿¡¼´Â hConÀ» ´ç¿¬È÷ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù. ¿¬°áÀ» ÇØÁ¦ÇÏ´Â ÀÛ¾÷µµ ¿ª½Ã Á¤Àû ¸â¹ö ÇÔ¼öÀÎ DBDisConnect¿¡¼ ó¸®ÇÑ´Ù.

main ÇÔ¼ö¿¡¼´Â DBQuery °´Ã¼¸¦ »ý¼ºÇϱâ Àü¿¡ DBConnect ÇÔ¼ö¸¦ È£ÃâÇØ¼ DB ¼¹ö¿¡ ¿¬°áÇϸç À̷μ DBQuery °´Ã¼°¡ ÁúÀǸ¦ ÇÒ ¼ö Àִ ȯ°æÀ» ¸¸µé¾î ³õ´Â´Ù. ÀÌÈÄ »ý¼ºµÇ´Â DBQuery °´Ã¼ Q1, Q2, Q3ÀÇ RunQuery ÇÔ¼ö´Â Á¤Àû ¸â¹ö hCon¿¡ ÀúÀåµÈ ¿¬°á ÇÚµé·Î ¿øÇÏ´Â ÁúÀǸ¦ ó¸®ÇÒ °ÍÀÌ´Ù. RunQuery ÇÔ¼ö´Â Á¤Àû ¸â¹ö´Â ¾Æ´ÏÁö¸¸ °øÀ¯µÈ ¿¬°á ÇÚµé hConÀº ¾ó¸¶µçÁö ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù.
ÁúÀǸ¦ ¸¶Ä¡°í ÇÁ·Î±×·¥À» Á¾·áÇϱâ Àü¿¡ DBDisConnect Á¤Àû ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÏ¿© DB ¼¹ö¿ÍÀÇ ¿¬°áÀ» ²÷°í ÇÊ¿äÇÑ µÞ󸮸¦ ÇÑ´Ù. DB ¼¹ö¿¡ ¿¬°áÇÏ´Â °úÁ¤Àº ±²ÀåÈ÷ ´À¸®°í ¸®¼Ò½º¸¦ ¸¹ÀÌ Â÷ÁöÇϱ⠶§¹®¿¡ °´Ã¼º°·Î µû·Î ¿¬°áÇÏÁö ¾Ê°í µü ÇÑ ¹ø¸¸ ¿¬°áÇØ¾ß ÇÑ´Ù. ÀÌ·² ¶§ »ç¿ëÇÏ´Â °ÍÀÌ ¹Ù·Î Á¤Àû ¸â¹öÀÌ´Ù. ¹°·Ð °¢ °´Ã¼º°·Î µû·Î ¿¬°á ÇÚµéÀ» °¡Áö°í »ý¼ºÀÚ¿¡¼ Á¢¼Ó, ÆÄ±«ÀÚ¿¡¼ ÇØÁ¦ÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù.

±×·¯³ª ÀÌ·¸°Ô µÇ¸é ¸Å °´Ã¼°¡ »ý¼ºµÉ ¶§¸¶´Ù Á¢¼ÓÇØ¾ß ÇϹǷΠ´À¸®°í ¿ë·® ³¶ºñ°¡ ½ÉÇÏ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ¾î¶² ¼¹ö´Â Ŭ¶óÀÌ¾ðÆ®´ç ÇϳªÀÇ Á¢¼Ó¸¸ ÀÎÁ¤Çϱ⵵ Çϰí Á¢¼Ó¼öº°·Î ¶óÀ̼¾½º ºñ¿ëÀ» ÁöºÒÇØ¾ß ÇÏ´Â °æ¿ìµµ ÀÖ´Ù. SQL ¼¹ö³ª ¿À¶óŬ°°Àº ´ëÇü RDB ½Ã½ºÅÛÀº ÃÖ´ë µ¿½Ã Á¢¼Ó¼ö¿¡ µû¶ó °¡°Ý Â÷À̰¡ ¹«Ã´ ½ÉÇÏ´Ù.
Àбâ Àü¿ë ÀÚ¿øÀÇ ÃʱâÈ
°´Ã¼´Â ½º½º·Î µ¿ÀÛÇÒ ¼ö ÀÖÁö¸¸ ¶§·Î´Â ¿ÜºÎÀÇ È¯°æÀ̳ª ÀÚ¿ø¿¡ ´ëÇÑ Á¤º¸¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ¿¹¸¦ µé¾î Á¤È®ÇÑ Ãâ·ÂÀ» À§ÇØ È¸é Å©±â¸¦ ¾Ë¾Æ¾ß ÇÒ °æ¿ìµµ ÀÖ°í Àå½ÄÀ» À§ÇØ ¿ÜºÎ¿¡ Á¤ÀÇµÈ ¿¹»Û ºñÆ®¸Ê ¸®¼Ò½º¸¦ Àоî¾ß ÇÏ´Â °æ¿ìµµ ÀÖ´Ù. ÀÌ·± Á¤º¸µéÀº ÀϹÝÀûÀ¸·Î ÇÑ ¹ø ÀÐ¾î¼ ¿©·¯ ¹ø »ç¿ëÇÒ ¼ö ÀÖ´Â Àбâ Àü¿ëÀ̱⠶§¹®¿¡ °´Ã¼º°·Î ÀÌ °ªÀ» ÀÏÀÏÀÌ Á¶»çÇÏ°í µû·Î À¯ÁöÇÒ Çʿ䰡 ¾ø´Ù. ´ÙÀ½ ¿¹Á¦´Â ȸé Å©±â¿¡ ´ëÇÑ Á¤º¸¸¦ Á¤Àû ¸â¹ö·Î °¡Áø´Ù.
|
¿¹ Á¦ : ReadOnlyInit |
#include <Turboc.h>
class Shape
{
private:
int ShapeType;
RECT ShapeArea;
COLORREF Color;
public:
static int scrx,scry;
static void GetScreenSize();
};
int Shape::scrx;
int Shape::scry;
void Shape::GetScreenSize()
{
scrx=GetSystemMetrics(SM_CXSCREEN);
scry=GetSystemMetrics(SM_CYSCREEN);
}
void main()
{
Shape::GetScreenSize();
Shape C,E,R;
printf("ȸé Å©±â = (%d,%d)\n",Shape::scrx,Shape::scry);
}
Shape Ŭ·¡½º´Â ȸ鿡 µµÇüÀ» ±×¸®´Â Ŭ·¡½ºÀε¥ ÀÌ Å¬·¡½ºÀÇ °´Ã¼µéÀº °øÅëÀûÀ¸·Î ÇöÀç ȸé Å©±â¿¡ ´ëÇÑ Á¤º¸¸¦ ÇÊ¿ä·Î ÇÑ´Ù°í ÇÏÀÚ. °¢ °´Ã¼º°·Î scrx, scry¸¦ °¡Áö°í »ý¼ºÀÚ¿¡¼ ÀÏÀÏÀÌ Á¶»çÇÒ ¼öµµ ÀÖÁö¸¸ ÀÌ·¸°Ô ÇÏ¸é ±â¾ï °ø°£ÀÌ ³¶ºñµÇ¸ç ½ÇÇà ½Ã°£µµ ´À·ÁÁø´Ù. °¢ °´Ã¼µéÀº µ¿ÀÏÇÑ È¸é¿¡¼ ½ÇÇàµÇ¸ç °¢ÀÚ°¡ Á¶»çÇϴ ȸé Å©±â°¡ ´Ù¸£Áö ¾ÊÀ¸¹Ç·Î ¿©·¯ ¹ø Á¶»çÇÒ Çʿ䰡 ÀüÇô ¾ø´Ù.
Á¤Àû ¸â¹ö º¯¼ö scrx, scry¸¦ ¸¸µé°í ÀÌ º¯¼öÀÇ °ªÀ» ÃʱâÈÇÏ´Â Á¤Àû ¸â¹ö ÇÔ¼ö GetScreenSize() ÇÔ¼ö¸¦ Á¤ÀÇÇÑ ÈÄ main¿¡¼ °´Ã¼¸¦ »ý¼ºÇϱâ Àü¿¡ µü ÇÑ ¹ø¸¸ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ¸é µÈ´Ù. Á¤Àû ¸â¹ö ÇÔ¼öÀ̹ǷΠ»ý¼ºµÈ °´Ã¼°¡ ¾ø¾îµµ È£ÃâÇÒ ¼ö ÀÖ´Ù. ÀÌÈÄ »ý¼ºµÇ´Â ¸ðµç Shape °´Ã¼´Â º°µµÀÇ Á¶»ç °úÁ¤À» °ÅÄ¡Áö ¾Ê°í °øÀ¯µÈ scrx, scry ¸â¹ö º¯¼ö¸¦ Àд °ÍÀ¸·Î ¾ðÁ¦µçÁö ȸé Å©±â¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù.

ÀÌ ¿¹Á¦¿¡¼´Â °£·«ÇÔÀ» À§ÇØ Á¶»çÇϱ⠽¬¿î ȸé Å©±â Á¤º¸¸¦ »ç¿ëÇߴµ¥ ¶§·Î´Â °øÀ¯ Á¤º¸°¡ ºñÆ®¸ÊÀ̳ª ¸ÖƼ ¹Ìµð¾î ÆÄÀÏ, ´ëÈ»óÀÚ °°Àº µ¢Ä¡°¡ Å« ÀÚ¿øÀÏ ¼öµµ ÀÖ´Ù. °¢ Á¤º¸°¡ Àбâ Àü¿ëÀÌ ¾Æ´Ï¶ó °´Ã¼º°·Î ´Ù¸¥ °ªÀ» °¡Á®¾ß ÇÏ´Â °æ¿ì¶ó¸é ¾ê±â°¡ ´Þ¶óÁö°ÚÁö¸¸ ÀϹÝÀûÀ¸·Î Àå½ÄÀ̳ª Á¤º¸ Ãëµæ¿¡ »ç¿ëµÇ´Â ÀÚ¿øµéÀº Àбâ Àü¿ëÀÌ¸ç ½ÇÇàÁß¿¡ °ªÀÌ º¯ÇÏÁö ¾Ê´Â´Ù. ÀÌ·± ÀÚ¿øµéÀº ¹Ýµå½Ã Á¤Àû ¸â¹ö·Î °ü¸®ÇØ¾ß ÇÏ¸ç ±×·¸Áö ¾ÊÀ» °æ¿ì ¼Óµµ³ª Å©±â¸é¿¡¼ ¾ÆÁÖ ºÒ¸®ÇØÁø´Ù.
¸ðµç °´Ã¼°¡ °øÀ¯ÇØ¾ß ÇÏ´Â Á¤º¸ °ü¸®
Áß¿äÇÑ °è»êÀ» ÇÏ´Â °´Ã¼ÀÇ °æ¿ì °è»ê¿¡ ÇÊ¿äÇÑ ±âÁذªÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ȯÀ²À̳ª ÀÌÀÚÀ² µûÀ§´Â ±ÝÀ¶, À繫 󸮿¡ »ó´çÈ÷ Áß¿äÇÑ ±âÁذªÀ¸·Î ÀÛ¿ëÇÏ¸ç ±âÁذª¿¡ µû¶ó °è»ê °á°ú°¡ ´Þ¶óÁø´Ù. ÀÌ·± °ªµéÀº ÇÁ·Î±×·¥ÀÌ µ¿ÀÛÁßÀÏ ¶§µµ ¼ö½Ã·Î º¯ÇÒ ¼ö ÀÖÁö¸¸ ÀÏ´Ü Á¤ÇØÁö¸é ¸ðµç °´Ã¼¿¡ ÀϰüµÇ°Ô Àû¿ëµÈ´Ù. ±×·¡¼ °³º° °´Ã¼µéÀÌ °¢ÀÚ ¸â¹ö·Î °¡Áú Çʿ䰡 ¾øÀ¸¸ç Á¤Àû ¸â¹ö·Î ¼±¾ðÇØ µÎ°í °øÀ¯Çϸé Ç×»ó ÃÖ½ÅÀÇ ±âÁذªÀ» Á¦°ø¹Þ°Ô µÈ´Ù. ´ÙÀ½Àº ȯÀ²À» °è»êÇÏ´Â Exchange Ŭ·¡½ºÀÇ ¿¹ÀÌ´Ù.
|
¿¹ Á¦ : ShareInfo |
#include <Turboc.h>
class Exchange
{
private:
static double Rate;
public:
static double GetRate() { return Rate; }
static void SetRate(double aRate) { Rate=aRate; }
double DollarToWon(double d) { return d*Rate; }
double WonToDollar(double w) { return w/Rate; }
};
double Exchange::Rate;
void main()
{
Exchange::SetRate(1200);
Exchange A,B;
printf("1´Þ·¯´Â %.0f¿øÀÌ´Ù.\n",A.DollarToWon(1.0));
Exchange::SetRate(1150);
printf("1´Þ·¯´Â %.0f¿øÀÌ´Ù.\n",B.DollarToWon(1.0));
}
Á¤Àû ¸â¹ö º¯¼ö Rate´Â Exchange Ŭ·¡½º¿¡ ¼ÓÇØ ÀÖ°í ÀÌ Å¬·¡½ºÀÇ ¸ðµç °´Ã¼°¡ °°ÀÌ ÂüÁ¶ÇÑ´Ù. ´©±¸µçÁö ȯÀ²ÀÌ ÇÊ¿äÇϸé ÀÌ °ªÀ» ÀÐÀ» ¼ö ÀÖ°í ¶ÇÇÑ º¯°æÇÒ ¼ö ÀÖ¾î °ü¸®ÇϱⰡ Æí¸®ÇÏ´Ù. ¸¸¾à °´Ã¼º°·Î ȯÀ²À» µû·Î °¡Áö¸é °´Ã¼¸¦ ÃʱâÈÇÒ ¶§¸¶´Ù ÇöÀçÀÇ ±âÁØ È¯À²À» Àü´ÞÇØ¾ß Çϸç ȯÀ²ÀÌ º¯ÇßÀ» ¶§ »ý¼ºµÇ¾î ÀÖ´Â ¸ðµç °´Ã¼¿¡°Ô ÀÌ »ç½ÇÀ» ¾Ë·Á¾ß ÇÒ °ÍÀÌ´Ù. ÇöÀç »ý¼ºµÈ ¸ðµç °´Ã¼ÀÇ ¸ñ·ÏÀ» À¯ÁöÇÏ´Â °ÍÀº »ý°¢º¸´Ù ÈξÀ ¾î·Á¿î ÀÏÀÌ´Ù. ÇϳªÀÇ °ªÀº ÇϳªÀÇ ±â¾ï Àå¼Ò¿¡ µÎ´Â °ÍÀÌ °¡Àå ¹Ù¶÷Á÷ÇÏ´Ù.

Á¤Àû ¸â¹ö¸¦ ¾²´Â ´ë½Å ±âÁذªÀ» ÇÊ¿ä·Î ÇÏ´Â ¸ðµç ¸â¹ö ÇÔ¼öµéÀÌ ±âÁذªÀ» Àμö·Î Àü´Þ¹Þ´Â ¹æ¹ýµµ »ý°¢ÇØ º¼ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ·¸°Ô µÇ¸é Ŭ·¡½º ¿ÜºÎ¿¡¼ º°µµÀÇ Àü¿ªº¯¼ö·Î ±âÁذªÀ» ÀúÀå ¹× °ü¸®ÇØ¾ß Çϸç À̴ ĸ½¶È¿¡ À§¹èµÈ´Ù. ÇÔ¼ö°¡ È£ÃâµÉ ¶§ ÃֽŰªÀ» Àμö·Î Á¦°ø¹ÞÀ¸¹Ç·Î °á°ú´Â °¡Àå Á¤È®ÇϰÚÁö¸¸ È£ÃâÇÒ ¶§¸¶´Ù Àμö¸¦ ÀÏÀÏÀÌ Àü´ÞÇÏ´Â °ÍÀº ¾ÆÁÖ ºñÈ¿À²ÀûÀÌ´Ù. ¿¹Á¦ÀÇ ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.
1´Þ·¯´Â 1200¿øÀÌ´Ù.
1´Þ·¯´Â 1150¿øÀÌ´Ù.
main¿¡¼ ÃÖÃÊ Á¤Àû ¸â¹ö ÇÔ¼ö SetRate¸¦ È£ÃâÇÏ¿© ȯÀ²À» 1200À¸·Î ¼³Á¤Çß´Ù. ÀÌ °ªÀº Á¤Àû ¸â¹ö º¯¼ö Rate¿¡ ÀúÀåµÇ¸ç ÀÌÈÄ »ý¼ºµÇ´Â ¸ðµç Exchange °´Ã¼´Â ÀÌ °ªÀ» °øÀ¯ÇÑ´Ù. Áß°£¿¡ ȯÀ²ÀÌ º¯°æµÇ¾ú´Ù¸é Exchange::SetRate() ÇÔ¼ö·Î »õ ±âÁذªÀ» Rate¿¡ ¼³Á¤ÇÏ¿© ¸ðµç °´Ã¼µéÀÌ ´ÙÀ½ °è»ê¿¡ ÀÌ °ªÀ» »ç¿ëÇϵµ·Ï ÇÑ´Ù.