• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 319, comments - 22, trackbacks - 0, articles - 11
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            轉(zhuǎn)載:http://www.cnblogs.com/fzzl/archive/2009/07/14/1522913.html

            【轉(zhuǎn)】vs2005下的dirent.h  該方法同樣適用于VS2008 及VS2010

            http://www.analogcn.com/Article/wz3/200802/20080202211037.html

             

            dirent.h是gcc下的一個(gè)頭文件,而在VS2005中是沒(méi)有的。這個(gè)文件中封裝了幾個(gè)對(duì)目錄進(jìn)行操作函數(shù):

            static DIR *opendir (const char *dirname);
            static struct dirent *readdir (DIR *dirp);
            static int closedir (DIR *dirp);

             對(duì)于在linux->windows之間進(jìn)行程序移植來(lái)講常常會(huì)造成一些困擾,在網(wǎng)上仔細(xì)搜了一下,發(fā)現(xiàn)原來(lái)已經(jīng)有位好同志寫(xiě)了相應(yīng)的移植代碼,如下所示:


            typedef struct dirent {
              /* name of current directory entry (a multi-byte character string) */
              char d_name[MAX_PATH + 1];

              /* file attributes */
              WIN32_FIND_DATA data;
            } dirent;


            typedef struct DIR {
              /* current directory entry */
              dirent current;

              /* is there an un-processed entry in current? */
              int cached;

              /* file search handle */
              HANDLE search_handle;

              /* search pattern (3 = zero terminator + pattern "\\*") */
              TCHAR patt[MAX_PATH + 3];
            } DIR;


            static DIR *opendir (const char *dirname);
            static struct dirent *readdir (DIR *dirp);
            static int closedir (DIR *dirp);


            /* use the new safe string functions introduced in Visual Studio 2005 */
            #if defined(_MSC_VER) && _MSC_VER >= 1400
            # define STRNCPY(dest,src,size) strncpy_s((dest),(size),(src),_TRUNCATE)
            #else
            # define STRNCPY(dest,src,size) strncpy((dest),(src),(size))
            #endif


            /*
             * Open directory stream DIRNAME for read and return a pointer to the
             * internal working area that is used to retrieve individual directory
             * entries.
             */
            static DIR*
            opendir(
                const char *dirname)
            {
              DIR *dirp;
              assert (dirname != NULL);
              assert (strlen (dirname) < MAX_PATH);

              /* construct new DIR structure */
              dirp = (DIR*) malloc (sizeof (struct DIR));
              if (dirp != NULL) {
                TCHAR *p;
               
                /* prepare search pattern */
            #ifdef _UNICODE

                /* convert directory name to wide character string */
                MultiByteToWideChar(
                    CP_ACP,                                /* code page */
                    0,                                     /* conversion flags */
                    dirname,                               /* mb-string to convert */
                    -1,                                    /* length of mb-string */
                    dirp->patt,                            /* wc-string to produce */
                    MAX_PATH);                             /* max length of wc-string */
                dirp->patt[MAX_PATH] = '\0';
               
                /* append search pattern to directory name */
                p = wcschr (dirp->patt, '\0');
                if (dirp->patt < p  &&  *(p-1) != '\\'  &&  *(p-1) != ':') {
                  *p++ = '\\';
                }
                *p++ = '*';
                *p = '\0';

            #else /* !_UNICODE */
               
                /* take directory name... */
                STRNCPY (dirp->patt, dirname, sizeof(dirp->patt));
                dirp->patt[MAX_PATH] = '\0';
               
                /* ... and append search pattern to it */
                p = strchr (dirp->patt, '\0');
                if (dirp->patt < p  &&  *(p-1) != '\\'  &&  *(p-1) != ':') {
                  *p++ = '\\';
                }
                *p++ = '*';
                *p = '\0';
               
            #endif /* !_UNICODE */

                /* open stream and retrieve first file */
                dirp->search_handle = FindFirstFile (dirp->patt, &dirp->current.data);
                if (dirp->search_handle == INVALID_HANDLE_VALUE) {
                  /* invalid search pattern? */
                  free (dirp);
                  return NULL;
                }

                /* there is an un-processed directory entry in memory now */
                dirp->cached = 1;
               
              }
              return dirp;
            }


            /*
             * Read a directory entry, and return a pointer to a dirent structure
             * containing the name of the entry in d_name field.  Individual directory
             * entries returned by this very function include regular files,
             * sub-directories, pseudo-directories "." and "..", but also volume labels,
             * hidden files and system files may be returned. 
             */
            static struct dirent *
            readdir(
                DIR *dirp)
            {
              assert (dirp != NULL);

              if (dirp->search_handle == INVALID_HANDLE_VALUE) {
                /* directory stream was opened/rewound incorrectly or it ended normally */
                return NULL;
              }

              /* get next directory entry */
              if (dirp->cached != 0) {
                /* a valid directory entry already in memory */
                dirp->cached = 0;
              } else {
                /* read next directory entry from disk */
                if (FindNextFile (dirp->search_handle, &dirp->current.data) == FALSE) {
                  /* the very last file has been processed or an error occured */
                  FindClose (dirp->search_handle);
                  dirp->search_handle = INVALID_HANDLE_VALUE;
                  return NULL;
                }
              }

              /* copy directory entry to d_name */
            #ifdef _UNICODE
             
              /* convert entry name to multibyte */
              WideCharToMultiByte(
                  CP_ACP,                                  /* code page */
                  0,                                       /* conversion flags */
                  dirp->current.data.cFileName,            /* wc-string to convert */
                  -1,                                      /* length of wc-string */
                  dirp->current.d_name,                    /* mb-string to produce */
                  MAX_PATH,                                /* max length of mb-string */
                  NULL,                                    /* use sys default character */
                  NULL);                                   /* don't care  */
              dirp->current.d_name[MAX_PATH] = '\0';
             
            #else /* !_UNICODE */

              /* copy as a multibyte character string */
              STRNCPY (dirp->current.d_name, dirp->current.data.cFileName, sizeof(dirp->current.d_name));
              dirp->current.d_name[MAX_PATH] = '\0';

            #endif /* !_UNICODE */
             
              return &dirp->current;
            }


            /*
             * Close directory stream opened by opendir() function.  Close of the
             * directory stream invalidates the DIR structure as well as any previously
             * read directory entry.
             */
            static int
            closedir(
                DIR *dirp)
            {
              assert (dirp != NULL);
             
              /* release search handle */
              if (dirp->search_handle != INVALID_HANDLE_VALUE) {
                FindClose (dirp->search_handle);
                dirp->search_handle = INVALID_HANDLE_VALUE;
              }

              /* release directory handle */
              free (dirp);
              return 0;
            }

            此文件可從http://www.softagalleria.net/dirent/index.en.html下載得到,直接將它放在VS2005的include目錄就OK 了!

            開(kāi)網(wǎng)店http://www.5678520.com/怎么樣開(kāi)網(wǎng)店

            posted @ 2012-04-28 06:42 RTY 閱讀(9701) | 評(píng)論 (0)編輯 收藏

                 摘要: 2011-04-15 11:09 46人閱讀 評(píng)論(0) 收藏 舉報(bào)摘自msdn,列在這里方便查閱。The following tables show the format specifiers recognized by the debugger. SpecifierFormatExpressionValue Displayedd,isigned...  閱讀全文

            posted @ 2012-04-24 22:37 RTY 閱讀(715) | 評(píng)論 (1)編輯 收藏

                 摘要: HomeLibraryLearnDownloadsSupportCommunitySign in | 中國(guó)(簡(jiǎn)體中文) |  | MSDN LibraryDevelopment Tools and LanguagesVisual Studio 2008Visual StudioApplication Development in Visu...  閱讀全文

            posted @ 2012-04-24 21:42 RTY 閱讀(792) | 評(píng)論 (0)編輯 收藏

                 摘要: HomeLibraryLearnDownloadsSupportCommunitySign in | 中國(guó)(簡(jiǎn)體中文) |  | MSDN LibraryDevelopment Tools and LanguagesVisual Studio 2010Visual StudioApplication Development in Visu...  閱讀全文

            posted @ 2012-04-24 21:39 RTY 閱讀(621) | 評(píng)論 (0)編輯 收藏

            Mailing Lists: Apple Mailing Lists
            Image of Mac OS face in stamp
            [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

            Re: Find path of an application


            • SubjectRe: Find path of an application
            • From: Terry Lambert <email@hidden>
            • Date: Tue, 16 Dec 2008 02:01:54 -0800
            • Delivered-to: email@hidden
            • Delivered-to: email@hidden

            On Dec 16, 2008, at 1:00 AM, Rakesh Singhal wrote:
            I am done with finding the process is running or not. Thanks a lot. Still I am stuck with second issue to find the path to my application in my system. Actually there are 3 steps:

            1. To know that application is running or not?  Now it is done. 2. If not then get the path of application where it was installed (user can change the path during installation). 3. Launch the application.

            My code is standard C++ tool so I want to use only C and C++ APIs. Please suggest me. 

            You said this was a GUI app that you didn't control the sources to. So control it anyway by renaming the binary in the bundle and putting a stub in there that will save off the id for you and then reexec the real binary:


            --- example with no error checking --- #include <mach-o/dyld.h>	/* _NSGetExecutablePath */ #include <limits.h>		/* PATH_MAX */ #include <unistd.h>		/* execve */ #include <libgen.h>		/* dirname */ #include <string.h>		/* strcpy */

            #define BINARYNAME	"myreal_executable"

            int main(int ac, char *av[]) { 	char pathbuf[PATH_MAX + 1]; 	char real_executable[PATH_MAX + 1]; 	char *bundle_id; 	int  bufsize = sizeof(pathbuf);

            	_NSGetExecutablePath( pathbuf, &bufsize);

            	bundle_id = dirname(pathbuf);

            	strcpy(real_executable, bundle_id); 	strcat(real_executable, "/"); 	strcat(real_executable, BINARYNAME);

            	execv(real_executable, av); } --------------------

            Then write the path into /var/run/program.<pid> before you do the execv call to give control to the real binary.

            Then in your other program go looking for /var/run/program.*. When you find one, take the pid and do an atoi() on it to get the integer pid back. Then end it a kill(pid, 0).

            This function will return one of three things:

            (1) 0, indicating that the process exists and you have the right to send it signals

            (2) -1, with errno set to EPERM, indicating that the process exists and you do not have rights to send it a signal

            (3) -1, with errno set to ESRCH, indicating that the process does not (yet) exist

            -

            Ideally, all this would be unnecessary because you put your daemon and the program you want to give it a UI into the same bundle, which ,means either one of them can find the other by looking at the dirname() from their own call to _NSGetExecutablePath().

            No grovelling around trying to find out where something came from, because it tells you.

            -- Terry _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list      (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden  
            References: 
             >Find path of an application (From: "Rakesh Singhal" <email@hidden>)
             >Re: Find path of an application (From: Jean-Daniel Dupas <email@hidden>)
             >Re: Find path of an application (From: "Rakesh Singhal" <email@hidden>)
             >Re: Find path of an application (From: Jean-Daniel Dupas <email@hidden>)
             >Re: Find path of an application (From: "Rakesh Singhal" <email@hidden>)

            posted @ 2012-04-18 22:44 RTY 閱讀(608) | 評(píng)論 (0)編輯 收藏

            @executable path, @load path and @rpath

            2010年11月6日 by Wincent Colaiuta

            Note: this article is actually about the @executable_path, @load_path and @rpath install paths used by the linker on Mac OS X; wiki titles can't include underscores, however, because they are ambiguous with spaces.

            Absolute paths

            Useful for frameworks installed in shared locations. Example:

            • Install path: /Library/Frameworks/Foo.framework/Versions/A/Foo

            @executable_path

            Useful for frameworks embedded inside applications, because it allows you to specify the location of the framework relative to the application's executable:

            • Install path: @executable_path/../Frameworks/Foo.framework/Versions/A/Foo
            • Application location: /Applications/Foo.app
            • Executable path: /Applications/Foo.app/Contents/MacOS
            • Framework location: /Applications/Foo.app/Contents/Frameworks/Foo.framework
            • Linker puts all this together to figure out that the framework binary can be found at: /Applications/Foo.app/Contents/MacOS/../Frameworks/Foo.framework/Versions/A/Foo

            @loader_path

            Available from Mac OS X 10.4 Tiger onwards; useful for frameworks embedded inside plug-ins, because it allows you to specify the location of the framework relative to the plug-in's code (remember, plug-ins may not actually know where they are going to be installed, relative to the application, so knowing @executable_path doesn't help us in this case):

            • Install path: @loader_path/../Frameworks/Foo.framework/Versions/A/Foo
            • Application location: /Applications/Foo.app
            • Plug-in location: /Library/Application Support/Foo/Plug-Ins/Bar.bundle
            • Executable path: /Applications/Foo.app/Contents/MacOS
            • Loader path: /Library/Application Support/Foo/Plug-Ins/Bar.bundle/Contents/MacOS
            • Framework location: /Library/Application Support/Foo/Plug-Ins/Bar.bundle/Contents/Frameworks/Foo.framework
            • Linker puts all this together to figure out that the framework binary can be found at: /Library/Application Support/Foo/Plug-Ins/Bar.bundle/Contents/MacOS/../Frameworks/Foo.framework/Versions/A/Foo

            Note that if the "loader" is an application rather than a plug-in, the @loader_path ends up being equivalent to @executable_path.

            @rpath

            New in Mac OS X 10.5 Leopard is @rpath. Key points:

            • @rpath instructs the dynamic linker to search a list of paths in order to locate the framework
            • critically, this list is embedded in the loading application
            • this means that a single framework with @rpath/Foo.framework/Versions/A/Foo can be made to work in a number of different ways; that is, you are effectively no longer limited by the choice of specifying your "install path" using either @executable_path or @loader_path
            • the down side: you now have to pass additional linker flags when building the host application (eg. -rpath @executable_path/../Frameworks or /Library/Frameworks; note that specifying both will cause the dynamic linker to try looking in both locations)

            Sources

            posted @ 2012-04-18 06:14 RTY 閱讀(1495) | 評(píng)論 (0)編輯 收藏

            真的坑爹,今天才開(kāi)始玩MAC OX,裝了個(gè)最新版本的10.7.3,只能裝XCODE 4.3 這個(gè)月剛發(fā)行的版本。

            安裝時(shí)發(fā)現(xiàn)沒(méi)有install過(guò)程,直接雙擊就進(jìn)入開(kāi)發(fā)環(huán)境了。而且裝完后沒(méi)有g(shù)cc 等各種編譯工具,在TERMINAL下各種命令不識(shí)別,想裝ruby的各種開(kāi)發(fā)工具,都不行了。

             

            查了半天才發(fā)現(xiàn):

            Apple announced Xcode 4.3 for OSX Lion and 4.4 for OSX Mountain Lion last week. The major difference is that Xcode no longer provide an installer which is good thing because you now could update Xcode with AppStore in the future, plus it is much easier to carry the development environment with you. However, there is a little problem with this new version of Xcode, is that all command line toolsets and compilers are not visible in terminal. 

            解決方案一:
            A simple fix is to update your PATH env:

            export PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH

            Please be noted that clang does not reside in /Developer/usr/bin, it is now in /Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

            Now you could access to gcc, g++, git or any toolsets bundled with Xcode. For your convenience, it is recommended to include it in your .bash_profile.

            解決方案二:

            You can install these additional tools directly in Xcode :
            Preferences > Downloads > Command Line Tools > Install


            SO. What a fUUUcking day!

            posted @ 2012-04-07 21:50 RTY 閱讀(743) | 評(píng)論 (0)編輯 收藏

            原文:http://blog.sina.com.cn/s/blog_5a6efa330100x3sp.html

            10月12日全新的IOS 5系統(tǒng)可供下載后,Mac OS也升級(jí)到了10.7.2,10.7.2支持iCloud 全套云服務(wù),用戶可以將自己的數(shù)據(jù)自動(dòng)存儲(chǔ)到iCloud中并推送到所有設(shè)備。另外本次更新主要包括常規(guī)性修復(fù),增強(qiáng)了穩(wěn)定性、兼容性和安全性等。
            但很多黑蘋(píng)果的朋友在更新10.7.2版本后,發(fā)現(xiàn)系統(tǒng)無(wú)法啟動(dòng),出現(xiàn)五國(guó)或者禁止符號(hào)等錯(cuò)誤。本文只針對(duì)采用虛擬機(jī)(VMware或者VirtualBOX)的朋友,具體解決方案如下;
            原因就是:升級(jí)后AppleLSIFusionMPT.kext 出了問(wèn)題,這個(gè)可以在升級(jí)補(bǔ)丁前備份AppleLSIFusionMPT.kext,完了后AppleLSIFusionMPT.kext備份到之前的文件夾。
            具體解決方法是:
            1、首先正常啟動(dòng)虛擬機(jī)后,進(jìn)入Mac OS X 10.7.1操作系統(tǒng)內(nèi)。

            原版本為:11B26

            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案

            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案

            2、啟動(dòng)“終端”程序(在“前往-實(shí)用工具”中)
            3、在終端命令行下完整輸入如下引號(hào)內(nèi)的命令(意思是備份AppleLSIFusionMPT.kext文件到當(dāng)前目錄)
            “cp -rv /System/Library/Extensions/AppleLSIFusionMPT.kext  .“
            注意最后一個(gè)點(diǎn)號(hào)不要忘記(指?jìng)浞莸疆?dāng)前目錄),而且大小寫(xiě)也不能錯(cuò)(我沒(méi)試過(guò)全部小寫(xiě),我印象中Unix系統(tǒng)都是大小寫(xiě)敏感的,這一點(diǎn)和windows不一樣)
            輸入之后,按回車,會(huì)出現(xiàn)一大堆文字,表示一些文件被正常備份下來(lái)。
            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案

             
            4、不要關(guān)閉終端,然后開(kāi)始正常的10.7.2補(bǔ)丁升級(jí)操作(這個(gè)步驟不會(huì)很快,尤其是在虛擬機(jī)下,可以干點(diǎn)別的,或者看我繼續(xù)往下說(shuō))
            蘋(píng)果官方10.7.2升級(jí)包地址
            http://support.apple.com/downloads/DL1459/en_US/MacOSXUpdCombo10.7.2.dmg
            5、【切記】順利升級(jí)完成后,不要立刻啟動(dòng)操作系統(tǒng)!而是重新回到終端命令行下
            6、輸入如下引號(hào)內(nèi)命令(意思是刪除在Lion10.7.2升級(jí)過(guò)程中系統(tǒng)又安裝上的AppleLSIFusionMPT.kext,這個(gè)文件是Lion10.7.2版本的,不好用,必須先刪除!)
            ”sudo rm -rfv /System/Library/Extensions/AppleLSIFusionMPT.kext“
            回車,會(huì)提示你輸入密碼,輸入你登錄密碼即可。可能屏幕沒(méi)有顯示,所以你一定要看好了提示文字(懂點(diǎn)英文還是必須的)
             VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案


            再輸入引號(hào)內(nèi)命令(意思是將升級(jí)前備份在當(dāng)前目錄下的AppleLSIFusionMPT.kext文件,是Lion 10.7.1版本的,重新拷貝到原系統(tǒng)中)
            ”sudo cp -rv AppleLSIFusionMPT.kext /System/Library/Extensions“

            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案


            7、正常重啟,大功告成!看到版本已經(jīng)變成10.7.2了。版本號(hào)為:Mac OS X Lion (11C74)
             VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案

            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案

            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案
                Lion 10.7.2的主要功能之一,iCloud出來(lái)了。

            這個(gè)修改版起碼小的升級(jí)都沒(méi)有問(wèn)題,而且常用的功能都使用正常,起碼我的iphone連上了itunes
            假如已經(jīng)升級(jí)了,顯然是無(wú)法啟動(dòng)的,那么可以用筆者以下的解決方案來(lái)解決。實(shí)現(xiàn)原理就是使用Windows PE盤(pán)進(jìn)入系統(tǒng),然后利用Transmac工具(至于為什么不用Macdrive,因?yàn)樗荒茉赑E下使用,而且還不免費(fèi))打開(kāi)系統(tǒng)盤(pán)/System/Library/Extensions/,將AppleLSIFusionMPT.kext替換,可能需要兩次才能生效,但是此教程是一定能夠成功的。圖文教程如下;(當(dāng)然也是從insanelymac學(xué)來(lái)的),我直接把重要的地方粘貼過(guò)來(lái)了(部分加上了細(xì)節(jié))
            *本文將利用到的工具*(Transmac和AppleLSIFusionMPT.kext文件)
            下載地址: http://m1.mail.sina.com.cn/apps/netdisk/download.php?id=e6f5482c11f317df981ddb0f1307cfca
            Mac_OS_X_10.7.2系統(tǒng)替換文件和工具by_dehe1988.rar
             VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案
            使用PE工具進(jìn)入系統(tǒng),本人使用的是“深山紅葉”大神工具包。PS:各種PE系統(tǒng)都行,這個(gè)只是提供一個(gè)修改的環(huán)境!
             

            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案
            系統(tǒng)界面
             
            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案



            輸入下載地址。如果很懶,也可以先下載,再發(fā)送到自己的郵箱中,再登陸自己郵箱下載,貌似更復(fù)雜?
             VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案


            文件約1.5MB,很好下載的!
             VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案


            Transmac的界面,該軟件可以讀取覽蘋(píng)果文件系統(tǒng)HFS+,而且可以在PE環(huán)境下運(yùn)行。但Transmac默認(rèn)只能讀取,因此需要設(shè)置。 
             VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案


            容許讀寫(xiě)打開(kāi)。關(guān)閉,再一次打開(kāi)就會(huì)生效了。
             
            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案


            找到/System/Library/Extensions/目錄下,將AppleLSIFusionMPT.kext復(fù)制到此替換。

            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案

            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案


             VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案

            VMware虛擬機(jī)從Mac <wbr>OS <wbr>Lion <wbr>10.7.1更新到Mac <wbr>OS <wbr>Lion <wbr>10.7.2后無(wú)法正常啟動(dòng)解決方案


             

            posted @ 2012-04-07 14:24 RTY 閱讀(1471) | 評(píng)論 (0)編輯 收藏

                 摘要: 原文:http://ideapad.zol.com.cn/56/160_557572.html靈感來(lái)了的時(shí)候,擋也擋不住,這個(gè)是真的!昨晚一個(gè)很偶然的機(jī)會(huì)下,我使用Vmware 8 安裝成功了Mac OS X 10.7(Lion)系統(tǒng),實(shí)在是讓人非常興奮。再三申明,本人的電腦就是那種裝黑蘋(píng)果被判了死刑的電腦。關(guān)于死——喬布斯是這么說(shuō)的“沒(méi)有人愿意死,即使想上天堂...  閱讀全文

            posted @ 2012-04-07 07:45 RTY 閱讀(3271) | 評(píng)論 (0)編輯 收藏

                 摘要: 原文:http://ideapad.zol.com.cn/57/160_560764.html樓主我之前發(fā)過(guò)的Vmware 8和VirtualBOX 安裝Lion的教程。1、全民吃蘋(píng)果,首發(fā)VirtualBOX安裝Mac OS X 10.7正式版_可完美升級(jí),無(wú)bug http://ideapad.zol.com.cn/56/160_557572.html2、踏破鐵鞋,Vmware 8完...  閱讀全文

            posted @ 2012-04-07 07:32 RTY 閱讀(873) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題
            共31頁(yè): 1 2 3 4 5 6 7 8 9 Last 
            久久人人爽人人爽人人片AV麻豆 | 久久线看观看精品香蕉国产| 久久精品无码专区免费东京热| 久久久无码精品亚洲日韩蜜臀浪潮 | 麻豆久久久9性大片| 亚洲va中文字幕无码久久不卡| 97精品国产91久久久久久| 香蕉99久久国产综合精品宅男自 | 色综合久久88色综合天天 | 国产Av激情久久无码天堂| 亚洲七七久久精品中文国产| 韩国无遮挡三级久久| 97精品国产97久久久久久免费| 久久电影网一区| 麻豆一区二区99久久久久| 亚洲精品99久久久久中文字幕| 久久精品免费一区二区三区| 亚洲精品无码久久久久久| 深夜久久AAAAA级毛片免费看| 中文字幕久久欲求不满| 亚洲国产精品一区二区久久hs| 亚洲?V乱码久久精品蜜桃| 久久激情亚洲精品无码?V| 国产亚洲欧美精品久久久| 色偷偷88欧美精品久久久| 久久久久久久久久久免费精品| 久久免费美女视频| 国产精品久久一区二区三区| 久久久亚洲欧洲日产国码aⅴ| 久久国语露脸国产精品电影| 久久久久久久91精品免费观看| 国产精品九九久久免费视频 | 国产精品99久久久久久宅男| 91精品国产9l久久久久| 99国产精品久久久久久久成人热| 亚洲∧v久久久无码精品| 色综合久久中文字幕无码| 久久久久免费看成人影片| 久久久久亚洲AV片无码下载蜜桃| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 国产AV影片久久久久久|