前段時間覺得好玩,安裝了Intel C++ Compiler進行評估,現(xiàn)在評估結(jié)束了,決定卸載。開始卸載之后,Visual C++ 6.0開始罷工了,報告無法找到xicl6.exe進行編譯。搜索了下注冊表,發(fā)現(xiàn)Intel C++ Compiler在安裝時候修改了Visual C++的工具設(shè)置,但卸載時沒有恢復(fù)。可以修改下面兩個地方:
1、HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Build System\Components\Platforms\Win32 (x86)\Tools\32-bit C/C++ Compiler for 80×86\Executable Path改成cl.exe;
2、HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Build System\Components\Platforms\Win32 (x86)\Tools\COFF Linker for 80×86\Executable Path改成link.exe就可以了。
需要退出VC++ 6.0,然后重新啟動,一切就正常了。
posted @
2006-06-13 15:59 zealsoft 閱讀(2227) |
評論 (3) |
編輯 收藏
使用Borland Developer Studio (BDS) 2006打開一個C++Builder工程,出現(xiàn)Access Violation錯誤:
+ $6[22B5B07D]{bcbide100.bpl} XMLProj.XMLProj.CreateNewBdsProjFile (Line 1249, "..\cpp\XMLProj.pas" + 2) + $6
+ $0[51F06B47]{rtl100.bpl? } System.System.@HandleAnyException (Line 9980, "system.pas" + 13) + $0
?+ $41[7C923786]{ntdll.dll?? } RtlConvertUlongToLargeInteger + $41
?+ $9[7C92EAF5]{ntdll.dll?? } KiUserExceptionDispatcher + $9
?+ $22[22B251E6]{bcbide100.bpl} CppProjOpts.CppProjOpts.MakeBprToBdsProj (Line 7414, "CppProjOpts.pas" + 8) + $22
?+ $24[22B2564C]{
bcbide100.bpl} CppProjOpts.CppProjOpts.TCppLegacyProjectFileHandler.Convert (Line 7637, "CppProjOpts.pas" + 11) + $24
?+ $9[22B257A8]{bcbide100.bpl} CppProjOpts.CppProjOpts.TCppLegacyProjectFileHandler.FileOpen (Line 7676, "CppProjOpts.pas" + 1) + $9
?+ $14[20C347A4]{coreide100.bpl} DocModul.DocModul.TFilterList.OpenFile (Line 777, "DocModul.pas" + 35) + $14
?+ $1E[20C39572]{coreide100.bpl} DocModul.DocModul.ProjectOpenDialog (Line 3079, "DocModul.pas" + 30) + $1E
[00412CC7]{bds.exe???? }
?+ $3[218AD460]{vclactnband100.bpl} ActnMenus.ActnMenus.TCustomActionMainMenuBar.TrackMenu (Line 3143, "ActnMenus.pas" + 3) + $3
?+ $4[218A891D]{vclactnband100.bpl} ActnMenus.ActnMenus.TCustomActionMenuBar.CMItemClicked (Line 883, "ActnMenus.pas" + 3) + $4
?+ $6[5203C998]{vcl100.bpl? } Controls.Controls.TWinControl.WndProc (Line 7242, "Controls.pas" + 101) + $6
?+ $4[218AA158]{vclactnband100.bpl} ActnMenus.ActnMenus.TCustomActionMenuBar.WndProc (Line 1572, "ActnMenus.pas" + 15) + $4
?+ $0[51F40BB0]{rtl100.bpl? } Classes.Classes.StdWndProc (Line 11572, "classes.pas" + 8) + $0
?+ $6F[77D18706]{USER32.dll? } GetDC + $6F
?+ $14F[77D187E6]{USER32.dll? } GetDC + $14F
?+ $122[77D189A0]{USER32.dll? } GetWindowLongW + $122
?+ $A[77D1BCC7]{USER32.dll? } DispatchMessageA + $A
經(jīng)過檢查,發(fā)現(xiàn)BDS2006只能處理C++Builder 5/6的工程,而早期的工程文件由于不是XML格式,就會導(dǎo)致上面的錯誤。而要想處理早期的工程,必須先用BCB 6.0轉(zhuǎn)換一下。
posted @
2006-05-03 22:36 zealsoft 閱讀(1565) |
評論 (0) |
編輯 收藏
一個朋友來信說,他在工程中添加了一個數(shù)據(jù)導(dǎo)出到Excel表的類CSpreadSheet,結(jié)果出現(xiàn)了LNK2005的錯誤。在網(wǎng)上查了一下,發(fā)現(xiàn)還不只我這個朋友遇到這個問題,CSDN上也有類似問題:http://topic.csdn.net/t/20050311/09/3842070.html
這個CSpreadSheet.h文件在CodeProject和CodeGuru上都有,其實是這個文件有問題。這個頭文件既包括了CSpreadSheet類的定義,還包括這個類的實現(xiàn),這樣所有包含這個頭文件的類都有一份這個類的實現(xiàn),鏈接的時候自然就出錯了。只要工程中有兩個以上的地方包含這個頭文件就會出現(xiàn)這個錯誤。解決的辦法很簡單,建立一個CSpreadSheet.cpp文件,然后在這個文件的開頭加上:
#include?“stdafx.h”
#include?“CSpreadSheet.h”
然后把CSpreadSheet.h中的從“// Open spreadsheet for reading and writing”(含)到“#endif”(不含)之前的語句都剪切到CSpreadSheet.cpp中,也就是將類的聲明和實現(xiàn)分離,再將CSpreadSheet.cpp文件加到工程中,這樣就可以了。
posted @
2006-04-24 15:24 zealsoft 閱讀(1529) |
評論 (0) |
編輯 收藏
早期的PhotoShop的SDK是免費的,不過現(xiàn)在已經(jīng)收費了。主要是因為編寫PS插件的人太多,Adobe覺得可以賺一筆了。你現(xiàn)在仍然可以從
這個地址找到4.0和5.0的SDK。不過最新版本的SDK只能從
Adobe PhotoShop Developer Center獲得。一般的,你必須加入ASN Developer Program(收費)才能獲得全部SDK。不過你也可以提出申請,說明理由,Adobe可能會給予你免費的SDK。由于我們編寫插件的目的是為了教學(xué)研究使用,所以Adobe給予了免費的SDK。不過這個SDK中沒有包括Import和FileFormat等一些插件的頭文件、文檔和例子。不知道這是不是免費的SDK和收費的SDK的區(qū)別。
posted @
2005-10-09 11:27 zealsoft 閱讀(4457) |
評論 (17) |
編輯 收藏
PhotoShop的插件體系由兩部分組成,一是插件(plug-in modules),二是宿主(plug-in hosts)。插件是Adobe或第三方開發(fā)者開發(fā)的、用以擴展標準Photoshop功能的軟件模塊,用戶可以不需改動宿主的代碼,而通過在系統(tǒng)中增加或升級插件以滿足自己的需要。宿主則負責(zé)把插件載入內(nèi)存并通過一定接口進行調(diào)用、協(xié)作,當(dāng)插件功能完畢之后,將插件從內(nèi)存中卸載。Harald Heim的文章中介紹了支持PhotoShop插件的許多宿主軟件。
每個PhotoShop插件的文件擴展名雖然都是.8開頭(表1),其實都是DLL文件。每個DLL中可以有多個插件,不過一般只帶有一個插件。
表1 插件的類型和控制名
文件類型 |
擴展名 |
通用 |
.8BP |
Automation |
.8LI |
Color Picker |
.8BC |
Import |
.8BA |
Export |
.8BX |
Extension |
.8BE |
Filter |
.8BF |
使用Depends查看一個Dissolve.8bf的輸出函數(shù)就可以發(fā)現(xiàn),其中的PluginMain函數(shù)是插件的入口函數(shù),PhotoShop將通過這個函數(shù)訪問插件的功能。這個函數(shù)的名字可以通過修改資源文件的方式修改。另一個_DissolveProc@16是窗口回調(diào)函數(shù),與PhotoShop無關(guān)。
posted @
2005-10-06 10:17 zealsoft 閱讀(2638) |
評論 (0) |
編輯 收藏
之所以想開發(fā)PhotoShop的插件,來自于上學(xué)期的經(jīng)歷。有個其他老師的學(xué)生老來問一些關(guān)于MFC的問題,她正在做一個合成孔徑雷達(SAR)圖象評估的軟件。作為一個電子工程系的學(xué)生,她的編程基礎(chǔ)當(dāng)然不是很理想,所以那些GDI、窗口變換、文件操作的基本問題都可以難上她幾周的時間,看上去很可憐。象她這樣研究SAR的,機器上都裝有PhotoShop,我說你可以編寫一個PhotoShop插件,這樣就不用去了解那些Windows編程的細節(jié),將精力主要集中在SAR算法上,否則兩年的時間怎么夠用呀,而且你注定無法成為一個Windows編程的高手,還是成為SAR專家比較靠得住。可是她的老師沒有想到過PhotoShop插件,她也從來沒有想過。我在想,有多少象她這樣的情況呢?所以,決定研究一下PhotoShop插件的編寫,也許對許多搞科研的人有用。下面介紹一下PhotoShop的插件所需要的基本工具和基本概念。
要編寫PhotoShop的插件需要PhotoShop SDK。要得到該SDK,需要到http://www.adobe.com/devnet/photoshop/下載,安裝以后包括編寫插件所需要的頭文件、資源文件、文檔、輔助工具和例子。由于PhotoShop最初是從Mac機上移植過來的,所以它的文檔和大多數(shù)例子都有Mac機的痕跡,Adobe推薦在Windows上使用Mac機的資源格式,這樣可以方便開發(fā)支持Windows和Mac的插件,這對于從小就用Windows開發(fā)的人來說夠痛苦的。而且它的文檔從5.0版本以來就沒有怎么更新,所以最新的內(nèi)容許多要靠閱讀例子獲得。PhotoShop的開發(fā)主要使用C/C++語言,SDK中的所有例子都包括Visual Studio.NET 2003的工程,這點還比較方便。
PhotoShop支持的插件有以下種類:
- Automation
Automation模塊可以訪問所有Photoshop腳本事件。這些模塊都出現(xiàn)在Automate菜單或Help菜單。在SDK的Photoshop Actions Guide.pdf中介紹了這些插件的開發(fā)。
- Color Picker
Color Picker模塊為實現(xiàn)不同的顏色選擇器提供一個插件接口。
- Import
Import模塊在一個新的窗口打開圖象。Import模塊,常用于掃描儀或視頻捕捉卡接口,讀取壓縮格式或系統(tǒng)不支持的文件,通過Import 子菜單調(diào)用。
- Export
Export模塊輸出已存在的圖象,,常用于控制特殊打印機或以非標準壓縮格式進行文件輸出,通過Export子菜單調(diào)用。
- Extension
Extension模塊是內(nèi)部模塊,接口不公開。
- Filter
Filter模塊(濾鏡)實施對當(dāng)前圖像中的選定區(qū)域進行修改、潤色。這是大家最熟悉的部分,許多圖像效果便是出自這些模塊,通過Filter菜單調(diào)用。
- Format
Format模塊,也叫File Format和Image Format模塊,提供對讀寫其他圖象格式的支持。它們出現(xiàn)在Open..., Save As...和Save a Copy...等對話框的格式彈出菜單中。
- Parser
Parser模塊類似Import和Export模塊,提供在Photoshop和其他 (通常是矢量的)格式,如Adobe Illustrator™ or Adobe® PageMaker™之間交換數(shù)據(jù)的支持。它們的接口不公開。
- Selection
Selection模塊修改圖象中被選中的像素,也可以返回路徑或像素選擇區(qū)。這些模塊出現(xiàn)在Selection菜單下。
如果想讀些入門教程,可以參考以下文章
-
-
MACTECH中的英文文章:
第一部分和
第二部分,雖然是針對Mac版本寫的,但是概念清楚,比SDK的文檔還要經(jīng)典。
在今后的Blog中,我會逐步介紹有關(guān)開發(fā)的內(nèi)容。
posted @
2005-09-12 17:22 zealsoft 閱讀(9243) |
評論 (12) |
編輯 收藏