À¥À» ÅëÇÑ ±¸¼º ¿ä¼ÒÀÇ ¾÷µ¥ÀÌÆ®´Â ´ë°³ ±¸¼º ¿ä¼ÒÀÇ ÆÄÀÏ ¹öÀüÀ» ÀÌ¿ëÇÏ¿© Á¦¾îÇÕ´Ï´Ù. ÀÌ ÆÄÀÏ ¹öÀüÀº <OBJECT> ű×ÀÇ CODEBASE Ư¼º¿¡¼ #VersionÀ» »ç¿ëÇÏ¿© ÁöÁ¤Çϰųª .inf ÆÄÀÏ¿¡¼ FileVersion Ű¿öµå¸¦ »ç¿ëÇÏ¿© ÁöÁ¤ÇÕ´Ï´Ù. ÆÄÀÏ ¹öÀüÀ» °áÁ¤ÇÏ´Â µ¥ È¥µ¿ÀÌ »ý±æ ¼ö ÀÖÀ¸¸ç ¹öÀüÀ» ¿Ã¹Ù¸£°Ô ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ±¸¼º ¿ä¼Ò°¡ À߸ø ´Ù¿î·ÎµåµÉ ¼ö ÀÖ½À´Ï´Ù. Microsoft Developer Studio ¶Ç´Â ÆÄÀÏ ¸®¼Ò½º¸¦ ¿ ¼ö ÀÖ´Â ±âŸ ȯ°æÀ» ¾×¼¼½ºÇÒ ¼ö ¾ø´Â °æ¿ì¿¡´Â GetVers.exe ÆÄÀÏÀ» »ç¿ëÇÏ¿© ÇÊ¿äÇÑ ¹öÀüÀ» ¾Ë¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù.
<OBJECT> ű׿¡¼´Â ¾Æ·¡¿Í °°ÀÌ CODEBASE Ư¼ºÀ» »ç¿ëÇÏ¿© ÆÄÀÏ ¹öÀüÀ» ÁöÁ¤ÇÕ´Ï´Ù.
<OBJECT ID="BoomButton" WIDTH=225 HEIGHT=35
CLASSID="CLSID:56F1BF40-B2D0-11d0-A6D6-00AA00A70FC2"
CODEBASE="http://example.microsoft.com/AControl.cab#Version=1,0,0,1">
...
¾Æ·¡´Â <OBJECT> ű׸¦ »ç¿ëÇÒ ¶§ ±¸¼º ¿ä¼Ò ´Ù¿î·Îµå¸¦ Á¦¾îÇÏ´Â ¹æ¹ýÀ» ÀÇ»ç ÄÚµå·Î ³ªÅ¸³½ °ÍÀÔ´Ï´Ù.
Check the Registry for CLSID
If CLSID of OBJECT is NOT found in the registry
Download OBJECT
Else If no #Version specified in CODEBASE tag
Use OBJECT installed on system
Else
Check InprocServer32 key for location of installed component
If File version of installed component < CODEBASE #Version Tag
Download OBJECT
À§ÀÇ ÀÛ¾÷ È帧°ú ´Ù¸¥ µÎ °¡Áö ¿¹¿Ü°¡ ÀÖ½À´Ï´Ù. CLSID ¾Æ·¡¿¡¼ [AppID] ۰¡ ¹ß°ßµÇ¸é ±¸¼º ¿ä¼Ò´Â ´ë°³ DCOMÀ» ÅëÇØ ½ÇÇàÇϵµ·Ï µî·ÏµÇ°í ¾÷µ¥ÀÌÆ®µÇÁö ¾Ê½À´Ï´Ù. ¶ÇÇÑ, [Installed Version] Ű´Â ÆÄÀÏ ¹öÀüº¸´Ù ¿ì¼±ÇÕ´Ï´Ù. ÀÌ Å°´Â Java Ŭ·¡½º¿Í ºñ PE(Portable Executable) ÆÄÀÏ¿¡ »ç¿ëµË´Ï´Ù.
.inf ÆÄÀÏÀ» ÅëÇØ ¼³Ä¡µÈ ±¸¼º ¿ä¼ÒÀÇ ¾÷µ¥ÀÌÆ®´Â .inf ÆÄÀÏ¿¡¼ FileVersion Ű¿öµå·Î Á¦¾îÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ¾Æ·¡ ±¸¹®Àº À§ÀÇ VC 4.2b ÄÁÆ®·ÑÀ» À§ÇÑ mfc42.dllÀÇ ¼³Ä¡¸¦ Á¦¾îÇÕ´Ï´Ù.
[mfc42.dll]
FileVersion=4,2,0,6256
hook=mfc42installer
ÀÌ .inf ÆÄÀÏÀÌ Mfc42.dll ´Ù¿î·Îµå¸¦ Á¦¾îÇÏ´Â ¹æ¹ýÀ» ÀÇ»ç ÄÚµå·Î ³ªÅ¸³»¸é ¾Æ·¡¿Í °°½À´Ï´Ù.
Search for mfc42.dll in the system (first looking at the same directory
as the previous version of the control being installed; if not found,
the file is searched for via the standard search path for DLLs)
If mfc42.dll is not found,
install mfc42.dll
Else
Compare the file version of the DLL with the FileVersion keyword
specified in the .inf file
<OBJECT> ÅÂ±×¿Í .inf ÆÄÀÏ ¸ðµÎ¿¡¼ ÆÄÀÏ ¹öÀüÀ» ÁöÁ¤ÇÏ´Â µ¥ È¥µ¿ÀÌ »ý±æ ¼ö ÀÖ½À´Ï´Ù. Windows Ž»ö±â¿¡¼ ÆÄÀÏÀ» ¸¶¿ì½º ¿À¸¥ÂÊ ´ÜÃß·Î ´©¸£°í
µî·Ï Á¤º¸¸¦ ¼±ÅÃÇÑ ´ÙÀ½
¹öÀü ÅÇÀ» ´©¸¦ ¶§ Windows ¼ÐÀÌ Ç¥½ÃÇÏ´Â ÆÄÀÏ ¹öÀüÀº <OBJECT> ű׳ª .inf ÆÄÀÏ¿¡ ÇÊ¿äÇÑ ¹öÀü ¹øÈ£¿Í Ç×»ó °°Áö´Â ¾Ê½À´Ï´Ù. ¾Æ·¡ ¿¹¿¡¼´Â ¸î¸î VC 5.0 DLL¿¡ ´ëÇØ Windows ¼ÐÀÌ º¸°íÇÏ´Â ÆÄÀÏ ¹öÀü ¹× »ç¿ëÇÒ ¿Ã¹Ù¸¥ ¹öÀü °£ÀÇ Â÷À̸¦ º¸¿©ÁÝ´Ï´Ù.
Mfc42.dll: º¸°í - 4.21.7022 »ç¿ë - 4,21,0,7022
Msvcrt.dll: º¸°í - 5.00.7022 »ç¿ë - 5,0,0,7022
Olepro32.dll: º¸°í - 5.0.4055 »ç¿ë - 5,0,4055,1
Microsoft Developer Studio¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖÀ¸¸é ¾Æ·¡¿Í °°Àº ¹æ¹ýÀ¸·Î ÆÄÀÏÀÇ ¸®¼Ò½º¸¦ ¿°í ¿Ã¹Ù¸¥ ¹öÀüÀ» ¾Ë¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù.
-
Developer StudioÀÇ File ¸Þ´º¿¡¼ OpenÀ» ¼±ÅÃÇϰí Open as, Resources¸¦ Â÷·Ê·Î ´©¸¨´Ï´Ù.
-
¹öÀü ¸®¼Ò½º¸¦ ¿°í FILEVERSION ۸¦ ã½À´Ï´Ù.
ÀÌ °÷¿¡ ³ªÅ¸³ª´Â ¹öÀüÀº <OBJECT> ű׳ª .inf ÆÄÀÏ¿¡¼ »ç¿ëÇÒ ¿Ã¹Ù¸¥ ¹öÀüÀÔ´Ï´Ù.
-
¹öÀü ¸®¼Ò½ºÀÇ Block Header ºÎºÐ¿¡ ¶Ç ´Ù¸¥ "FileVersion" ۰¡ ÀÖ´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹öÀüÀº Windows ¼ÐÀÌ Ç¥½ÃÇÏ´Â ¹öÀü ¹øÈ£·Î, ¶§·Î´Â À§ 2´Ü°è¿¡¼ º» FILEVERSION Ű¿¡ ³ªÅ¸³ ¹öÀü ¹øÈ£¿Í ´Ù¸¦ ¼ö ÀÖ½À´Ï´Ù.
Microsoft Developer Studio ¶Ç´Â ÆÄÀÏ ¸®¼Ò½º¸¦ ¿ ¼ö ÀÖ´Â ¶Ç´Â ±âŸ ȯ°æÀ» ¾×¼¼½ºÇÒ ¼ö ¾ø´Â °æ¿ì¿¡´Â GetVers.exe¸¦ »ç¿ëÇÏ¿© ÇÊ¿äÇÑ ¹öÀüÀ» ¾Ë¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÇÁ·Î±×·¥À» »ç¿ëÇÏ·Á¸é ÇÁ·Î±×·¥À» ´Ù¿î·ÎµåÇÑ ´ÙÀ½ ¾Æ·¡ ¸í·ÉÀ» ÀÔ·ÂÇÕ´Ï´Ù.
GetVers <ÆÄÀÏ À̸§>
Microsoft Download Center¿¡¼ ¾Æ·¡ÀÇ ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÒ ¼ö ÀÖ½À´Ï´Ù. ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÏ·Á¸é ¾Æ·¡ÀÇ ÆÄÀÏ À̸§À» ´©¸£½Ê½Ã¿À.
Getvers.exe
(http://download.microsoft.com/download/ie4095/util10/1/win98/en-us/getvers.exe)
Microsoft Download Center¿¡¼ ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀ» º¸·Á¸é ¾Æ·¡ÀÇ Microsoft Download Center¸¦ ¹æ¹®ÇϽʽÿÀ.
±×·± ´ÙÀ½,
How to use the Microsoft Download Center¸¦ ´©¸£½Ê½Ã¿À.
¾Æ·¡´Â GetVer ÇÁ·Î±×·¥ÀÇ ¼Ò½º ÄÚµåÀÔ´Ï´Ù.
void reportError()
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL );
cout << (char*)lpMsgBuf << "\n";
// Free the buffer.
LocalFree( lpMsgBuf );
}
void main( int argc, char *argv[ ], char *envp[ ] )
{
cout << "\n";
if(2 != argc)
{
cout << "Syntax: GetVer <File Name>\n";
return;
}
DWORD dwArg;
DWORD dwInfoSize = GetFileVersionInfoSize(argv[1], &dwArg;);
if(0 == dwInfoSize)
{
cout << "No version info available\n";
reportError();
return;
}
BYTE* lpBuff = new BYTE[dwInfoSize];
if(!lpBuff)
{
cout << "Out of Memory\n";
return;
}
if(0 == GetFileVersionInfo(argv[1], 0, dwInfoSize, lpBuff))
{
cout << "Error retrieving version info\n";
reportError();
return;
}
VS_FIXEDFILEINFO *vInfo;
UINT uInfoSize;
if(0 == VerQueryValue(lpBuff, TEXT("\\"),
(LPVOID*)&vInfo,
&uInfoSize))
{
cout << "Version information not available\n";
delete lpBuff;
return;
}
if(0 == uInfoSize)
{
cout << "Version information not available\n";
delete lpBuff;
return;
}
cout << argv[1]
<< " Version: "
<< HIWORD(vInfo->dwFileVersionMS) << ","
<< LOWORD(vInfo->dwFileVersionMS) << ","
<< HIWORD(vInfo->dwFileVersionLS) << ","
<< LOWORD(vInfo->dwFileVersionLS) << "\n";
delete lpBuff;
}±â¼ú ÀÚ·á: 167597 - ¸¶Áö¸· °ËÅä: 2004³â 8¿ù 12ÀÏ ¸ñ¿äÀÏ - ¼öÁ¤: 1.3
º» ¹®¼ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
- Microsoft Internet Explorer 3.0
- Microsoft Internet Explorer 3.01
- Microsoft Internet Explorer 3.02
- Microsoft Internet Explorer 4.0 128-Bit Edition
| kbdownload axsdkcompdownload inetsdkcab kbactivex kbfile kbie300 kbie301 kbie302 kbie400 kbiefaq KB167597 |
´õ ÀÌ»ó Áö¿øµÇÁö ¾Ê´Â Á¦Ç°ÀÇ KB ³»¿ë¿¡ ´ëÇÑ °íÁö »çÇ×ÀÌ ¹®¼¿¡¼´Â Microsoft¿¡¼ ´õ ÀÌ»ó Áö¿øÇÏÁö ¾Ê´Â Á¦Ç°¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. µû¶ó¼ ÀÌ ¹®¼´Â "ÀÖ´Â ±×´ë·Î" Á¦°øµÇ¸ç ¾÷µ¥ÀÌÆ®µÇÁö ¾Ê½À´Ï´Ù.