2009年12月5日 星期六

Evernote 線上筆記本

Evernote 一個線上筆記本

可再電腦上寫筆記,再將筆記內容同步到網路上,可在不同地方存取該筆記


Evernote

檔案無法存取、記憶體或磁碟空間不足,因此無法開啟資料庫 '%.*ls'。詳細資訊請參閱 SQL Server 錯誤記錄檔。

檔案無法存取、記憶體或磁碟空間不足,因此無法開啟資料庫 '%.*ls'。詳細資訊請參閱 SQL Server 錯誤記錄檔。

目前已解決, 解決辦法:
1. 服務停止, 將mdf檔移開到別處, ldf 可以刪除(若不需要交易log時)
2. 原資料夾建立一個相同的資料庫名 (例Test)
3. 定Test資料庫狀態為EMERGENCY:
ALTER DATABASE Test SET EMERGENCY
4. 設定Test資料庫模式為"單一使用者":
sp_dboption 'Test', 'single user', 'true'
5. 檢查指定資料庫中所有物件的配置、結構和邏輯完整性:
DBCC CHECKDB (Test, REPAIR_ALLOW_DATA_LOSS)
6. 還原Test資料庫模式:
sp_dboption 'Test', 'single user', 'false'
7. 設定Test資料庫狀態為ONLINE:
ALTER DATABASE Test SET ONLINE



以上解決資料庫異常不能附加的問題, 不過一些設定也掉了, 要再重新設定!

資料庫連線字串 Connection string

MSSQL , Oracle , MySQL .... 資料庫連線字串  Connection string

SQL Server 2008

Standard Security
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

Standard Security alternative syntax
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

Trusted Connection
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;


Oracle


Using TNS
Data Source=TORCL;User Id=myUsername;Password=myPassword;


Using integrated security
Data Source=TORCL;Integrated Security=SSPI;


Using ODP.NET without tnsnames.ora
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;


MySQL


Standard (Default port is 3306.)
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Specifying port
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;




Excel 密碼破解

Excel 密碼破解
 
 
 
將下列程式貼入巨集中,然後執行~ 等待~ 依密碼難度會有不同破解時間~
 
Sub PasswordBreaker()

    Dim i As Integer, j As Integer, k As Integer

    Dim l As Integer, m As Integer, n As Integer

    Dim i1 As Integer, i2 As Integer, i3 As Integer

    Dim i4 As Integer, i5 As Integer, i6 As Integer

    On Error Resume Next

    For i = 65 To 66: For j = 65 To 66: For k = 65 To 66

    For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66

    For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66

    For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126

    ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

    If ActiveSheet.ProtectContents = False Then

    MsgBox "One usable password is " & Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

    ActiveWorkbook.Sheets(1).Select

    Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)

    Exit Sub

    End If

    Next: Next: Next: Next: Next: Next

    Next: Next: Next: Next: Next: Next

End Sub

Ubuntu Change fonts (Ubuntu 字型更換)

Ubunthu中文字體顯示有問題, 方塊字,彩色字


將新字體檔案複製到下列目錄中,需以root權限複製
/usr/share/fonts

ex:
sudo cp /home/user/newfonts.tff /usr/share/fonts

將新增的字體載入,執行下列指令
fc-cache -v -f /usr/share/fonts/


完成後就可以選新字體來用嚕!

GNOME 快捷鍵 快速鍵

GNOME快捷鍵

通用快捷鍵

Alt + F1 類似Windows下的Win鍵,在GNOME中打開"應用程序"菜單(Applications)
Alt + F2 類似Windows下的Win + R組合鍵,在GNOME中運行應用程序
Ctrl + Alt + D 類似Windows下的Win + D組合鍵,顯示桌面
Ctrl + Alt + L 鎖定桌面並啟動屏幕保護程序

Ctrl + Alt + → / ← 在不同工作台間切換
Ctrl + Alt + Shift + → / ← 移動當前窗口到不同工作台

Ubuntu通用快捷鍵

PrintScreen 全屏抓圖
Alt + PrintScreen 當前窗口抓圖
Ctrl+ Alt+ F1-F4 進入全屏終端
Ctrl+ Alt+ F7 返回桌面
<--Ctrl+Alt+Shift+F8 未知(終端或模擬終端)
Ctrl+Alt+Shift+Fn 終端N或模擬終端N(n和N為數字1-6) -->

窗口操作快捷鍵(Metacity窗口管理器)

滑鼠操作

Shift + 中鍵 拖拽文件圖標,移動菜單
Alt + 左鍵 拖拽移動窗口
Alt + Shift + 左鍵 拖拽移動窗口並且可以使窗口停留在邊緣位置
Alt + 右鍵 彈出窗口管理器菜單
Alt + 中鍵 拖拽改變窗口大小

純鍵盤

Alt + ESC 在不同程序窗口間切換
Alt + Tab 為了兼容Windows下的Alt + Tab組合鍵習慣,提供的第二個「在不同程序窗口間切換」
Alt + F4 關閉窗口
Alt + F5 取消最大化窗口 (恢復窗口原來的大小)
Alt + F7 移動窗口 (注: 在窗口最大化的狀態下無效)
Alt + F8 改變窗口大小 (注: 在窗口最大化的狀態下無效)
Alt + F9 最小化窗口
Alt + F10 最大化窗口
Alt + Space 打開窗口的控制菜單 (點擊窗口左上角圖標出現的菜單)

應用程序中的常用快捷鍵

(注: 並不適用於所有程序)
Ctrl+N 新建窗口
Ctrl+X 剪切
Ctrl+C 複製
Ctrl+V 粘貼
Ctrl+Z 撤銷上一步操作
Ctrl+Shift+Z / Ctrl+Y 重做剛撤銷的一步操作
Ctrl+S 保存
Ctrl+B 書籤

文件瀏覽器(部分)

Ctrl+H 顯示隱藏文件(切換鍵)
Ctrl+T 新建標籤
Ctrl+W 關閉標籤
Ctrl+Page Up 上一個標籤
Ctrl+Page Down 下一個標籤
Alt+N 切換到第N個標籤(N為數字)

在Ubuntu中自定義快捷鍵

訪問「System>Preferences>Keyboard Shortcuts」,選定想要設置的項目,然後鍵入快捷鍵即可生效。

net use

使用username這個帳號連線到 \\server\yourpath\,密碼是password
net use "\\server\yourpath\" password /user:"username"


把連線指定到你本機的磁碟機Z:
net use Z:"\\server\yourpath\" password /user:"username"


微軟官方的範例。
Examples
若要將磁碟機裝置名稱 E:指派到 \\Financial 伺服器上的 Letters 共用目錄,請輸入:
net use e:\\financial\letters

若要將磁碟機裝置名稱 M:指派 (對應) 到 \\Financial NetWare 伺服器之 Letters 磁碟區內的 Mike 目錄,請輸入:
net use m:\\financial\letters\mike

若要連接使用者識別元 Dan (就像從「帳戶」網域所作的連線一樣),請輸入:
net use d:\\server\share /user:Accounts\Dan

若要將磁碟機裝置名稱 F:指派到命名為 TargetName 之 MSN Internet Access 社群內的檔案櫃 (使用 Passport 帳戶 UserName@passport.com),請輸入:
net use f:http://www.msnusers.com/TargetName/user:UserName@passport.com

若要中斷自 \\Financial\Public 目錄的連線,請輸入:
net use f:\\financial\public /delete

若要與 \\Financial 2 伺服器上的共用資源備忘錄連線,請輸入:
net use k:"\\financial 2" \memos

Ubuntu Flash 沒聲音

Ubuntu Flash 沒聲音

看 youtube 沒聲音



sudo apt-get install flashplugin-nonfree

重開Firefox

Virtual Box USB 反白 不能使用

USB 列表變成了反白的情況,

檢查 /etc/udev/rules.d/10-vboxdrv.rules

限定要 vboxusers 才能使用這些 usb 的裝置


解決辦法
將使用者加到 vboxusers 裡面就可以正常使用 virtualbox 的 usb 裝置了。

2009年3月18日 星期三

如何疑難排解損毀的 Word 文件

損毀的文件檔案會讓所有程式出現不尋常的行為。發生這種情況的原因是因為檔案中的某些資訊不正確。

避免文件損毀問題的最好方法就是保留文件的備份。如果您沒有文件的備份,可以使用本文的疑難排解程序來辨識損壞的 Microsoft Word 文件,並在可能的情況下進行復原。

http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Word/Q_23998868.html

http://support.microsoft.com/kb/826864

2009年2月7日 星期六

RSA 混合 TripleDES 加密

使用TripleDES 加密檔案,並使用 RSA 加密 TripleDES 所產生的 Key 與 IV

以另一種方式來達成→公鑰加密 檔案 →私鑰解密 檔案


另有

壓縮後加密 → 解密後解壓縮

2009年2月4日 星期三

C++ 學習筆記 入門教學

原文





入門基礎
學習程式語言第一件事,通常就是先作個簡單的程式來運行一下,並從瞭解程式語言的資料型態、變數與流程控制語法開始。
  • 資料型態與變數
無論如何 先來個 "Hello! World!" 顯示一下程式執行結果,增加一點撰寫程式的信心!接著就耐心的瞭解一下 C++ 的資料型態,以認識一下變數、常數。
  • 運算
程式的目的簡單的說就是運算、運算還是運算,加減乘除這類的動作是少不得的,在C++中提供運算功能的就是運算子(Operator)。
  • 流程控制
流程控制語法是程式設計的基本,藉由各種條件判斷與迴圈重覆執行語法,您可以令您的程式因應不同的狀況而作出不同的回應。
進階型態
陣列、字串、指標這幾種C++的進階型態相當常被使用,雖然看似複雜,但彼此之間互有相關。

  • 陣列(Array)
各種型態的陣列各有其不同的用途,但無論如何,先從基本型態的一維陣列、二維陣列開始認識起。
  • 向量(Vector)
C++提供了內建陣列的替代型態 vector,vector 可以如同陣列一般的操作,並記得自己的長度資訊,您也可以使用物件的方式來操作 vector 。
  • 字串(String)
字串的本質是字元陣列,而在C++中還可以使用string類別來表現字串,兩者都有瞭解的必要。
  • 指標(Pointer)
指標可指向一個記憶體位址,可對物件作間接操作,指標擁有型態,這用來告訴編譯器如何解釋記憶體空間的內容,以及每一次運算的大小。


函式
程式中超過兩次以上重複使用的程式碼,可以考慮將之定義為函式,以便重覆呼叫使用,降低相同程式片段的維護成本。

  • 函式入門
先簡介一些與函式定義相關的幾個語法,並談談幾個變數可視範圍的議題。
  • 進階議題
遞迴呼叫、傳值、傳址、傳參考等,這些議題在函式的使用上關乎執行資源的使用與效率問題。


物件基礎
以物件為基礎的程式設計,將程式中互動的單元視為一個個的物件。
  • 封裝(Encapsulation)
封裝物件資訊是第一步,您要瞭解如何使用類別定義物件,像是定義物件的屬性、行為等等,類別是建構物件 時所依賴的規格書。
一些有關於指標、運算子重載、特殊型態類別的相關議題。


物件導向
以物件為基礎作延伸,多型(Polymorphism)操作為設計時的核心,於執行時期 動態繫結(Dynamic binding)以決定物件的行為。
  • 繼承(Inheritance)
您可以繼承某個(父)類別的定義並加以擴充,而制訂出一個新的(子)類別定義。
多型操作在物件 導向設計中伴演著極重要的角色,使用的適當與否,足以 影響程式的架構與未來的可維護性。
例外處理(Exception Handling)
例外(Exception)是程式執行時期可偵測到的異常狀況,C++的例外處理包括兩部份:例外的丟出(throw)與例外的捕捉(catch)與處 理。

範本(Template)、名稱空間(Namespace)
範本(Template)提供被參數化的型態(Parameterized Types)功能,將型態相依與非型態相依的演算法分離開來;名稱空間則提供一個名稱管理容器,減低名稱衝突的機會發生。
輸入/輸出
來看看 C++ 中如何處理輸入/輸出,像是格式控制、檔案 I/O 等。
  • 格式控制與 <<、>> 運算子重載
首先來看看基本的格式控制,以及 << 、 >> 運算子的重載。
檔案的輸出輸入是 I/O 的基本,為認識 I/O 的入門必學。
附錄


Sun OpenSource Community Day
















Design Pattern 設計模式

原文
Gof 模式
Creational 模式
物件的產生需要消 耗系統資源,所以如何有效率的產生、管理 與操作物件,一直都是值得討論的課題, Creational 模式即與物件的建立相關,在這個分類下的模式給出了一些指導原則及設計的方向。

  • Structural 模式
如何設計物件之間 的靜態結構,如何完成物件之間的繼承、實 現與依賴關係,這關乎著系統設計出來是否健壯(robust):像是易懂、易維護、易修改、耦合度低等等議題。Structural 模式正如其名,其分類下的模式給出了在不同場合下所適用的各種物件關係結構。

  • Behavioral 模式
物件之間的合作行 為構成了程式最終的行為,物件之間若有設 計良好的行為互動,不僅使得程式執行時更有效率,更可以讓物件的職責更為清晰、整個程式的動態結構(像是物件調度)更有彈性。

多執行緒模式
在很多應用中都會使用多執行緒,尤其是在Web應用中,多執行緒以 Gof 整理的模式為基礎,考量多執行緒環境中,如何組合這些基本模式來完成多執行緒安全要求。


參考資料
以下是以Java實作設計模式的介紹網站,從下面的連結開始,當中您可以找到更多設計模式的資源。

使用者入門 (Visual C++ 中的 [如何?])

使用 Visual C++
逐步解說:使用 Visual Studio IDE

介紹 Visual Studio 整合式開發環境 (IDE),並示範適用於 Visual C++ 開發人員的有用功能。

HOW TO:編譯針對 Visual Studio 中 CLR 的 C++ 程式

示範如何使用 Visual Studio IDE 編譯 Visual C++ 程式。

HOW TO:編譯說明主題的程式碼範例

示範如何編譯 Visual Studio 隨附的說明主題中的程式碼範例。

HOW TO:從命令列編譯原生 C++ 程式

示範如何從命令列編譯 Visual C++ 程式。

HOW TO:搭配 Microsoft Platform SDK 使用 Visual C++ Express 版

提供安裝 Microsoft Platform SDK 以搭配使用 Visual C++ Express Edition 的指示。

針對 UNIX 使用者的 Visual C++ 簡介

向 Microsoft 環境的新手開發人員介紹 Visual Studio 和 Visual C++。

HOW TO:從現有程式碼建立 C++ 專案

示範如何將現有的程式碼匯入至 Visual Studio。

HOW TO:建立 Windows Form 應用程式

解說如何使用 Visual Studio 建立 Windows Form 應用程式。

逐步解說:建立 Windows Form 控制項

解說如何使用 Visual Studio 建立 Windows Form 控制項,以及如何在應用程式中使用該控制項。

ASP.NET Web 服務範本 (C++)

介紹用來編寫 XML Web Service 的 ASP.NET Web 服務範本。

建立和開發 Managed 裝置專案

討論針對 Managed 裝置和針對桌上型電腦進行開發的一些差異性。

HOW TO:建立 SQL Server 專案 (C++)

提供 SQL Server 類別庫範本的概觀。

CLR 主控台應用程式範本 (C++)

介紹主控台應用程式範本,它可用來建立會從命令列執行的應用程式。

逐步解說:建立和使用 Managed 組件

示範如何建立 Managed 組件,以及如何從另一個應用程式來使用該組件。

HOW TO:建立 Standard C++ 程式

解說如何使用 Visual Studio 建立及編譯標準的 C++ 程式。

MFC 應用程式精靈

解說如何使用 MFC 應用程式精靈建立 MFC 應用程式。

MFC ActiveX 控制項精靈

解說如何使用 MFC ActiveX 控制項精靈建立 MFC ActiveX 控制項。

Win32 應用程式精靈

解說如何使用 Win32 應用程式精靈建立標準的 C++ 程式。

MFC DLL 精靈

解說如何使用 MFC DLL 精靈建立 MFC 動態連結程式庫。

ATL 專案精靈

解說如何使用 ATL 專案精靈建立 Active Template Library 應用程式。

ATL Server 專案精靈

解說如何使用 ATL Server 專案精靈建立原生 XML Web Service 應用程式。

Windows 服務範本 (C++)

解說如何使用 Windows 服務範本建立 Windows 服務,Windows 服務是一種會在它自己的 Windows 工作階段中長時間執行的可執行應用程式。

建立及移植 Visual C++ 裝置專案

包含有關建立新 Visual C++ 裝置專案的主題,以及有關可讓現有專案在 Visual Studio 2005 環境中鎖定裝置的主題。

逐步解說:建立和使用動態連結程式庫

示範如何建立動態連結程式庫,以及如何從另一個應用程式來使用該 DLL。

C++ 語言 (Visual C++ 中的 [如何?])

介紹用來鎖定 Common Language Runtime (CLR) 為目標的 C++ 新語法。

HOW TO:讀取二進位檔案

示範如何從檔案讀取二進位資料。

HOW TO:寫入二進位檔案

示範如何將二進位資料寫入檔案中。

HOW TO:讀取文字檔

示範如何開啟文字檔,並一次讀取一行。

HOW TO:寫入文字檔

示範如何使用 StreamWriter 類別建立文字檔,並將文字寫入到這個檔案中。

HOW TO:列舉目錄中的檔案

示範如何擷取目錄中的檔案之清單。

HOW TO:監視檔案系統變更

使用 FileSystemWatcher 來註冊建立、變更、刪除或重新命名檔案的對應事件。

HOW TO:擷取檔案資訊

示範 FileInfo 類別。當您知道檔案名稱時,您可以使用這個類別擷取檔案的資訊,例如檔案大小、目錄、完整名稱以及建立和上次修改的日期和時間。

HOW TO:將資料寫入至 Windows 登錄

使用 CurrentUser 機碼來建立 RegistryKey 類別的可寫入執行個體。

HOW TO:從 Windows 登錄讀取資料

使用 CurrentUser 機碼來從 Windows 登錄讀取資料。

HOW TO:從剪貼簿擷取文字

使用 GetDataObject 成員函式來傳回 IDataObject 介面的指標,然後即可對此介面查詢資料的格式,並用來擷取實際的資料。

HOW TO:將文字儲存在剪貼簿中

使用 System.Windows.Forms 命名空間中所定義的 Clipboard 物件來儲存字串。

HOW TO:擷取 Windows 版本

示範如何擷取目前作業系統的平台和版本的資訊。

HOW TO:擷取自啟動後經過的時間

示範如何判斷 Windows 啟動之後所經歷的時間滴答計數或是毫秒數。

2009年1月15日 星期四

C# Compress Decompress byte[] 壓縮 解壓縮 byte[]

public static byte[] Compress(byte[] buffer)
{
try
{
MemoryStream ms = new MemoryStream();
GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true);
zip.Write(buffer, 0, buffer.Length);
zip.Close();
ms.Position = 0;

MemoryStream outStream = new MemoryStream();

byte[] compressed = new byte[ms.Length];
ms.Read(compressed, 0, compressed.Length);

byte[] gzBuffer = new byte[compressed.Length + 4];
Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length);
Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4);
return gzBuffer;
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
}


public static byte[] Decompress(byte[] gzBuffer)
{
try
{
MemoryStream ms = new MemoryStream();
int msgLength = BitConverter.ToInt32(gzBuffer, 0);
ms.Write(gzBuffer, 4, gzBuffer.Length - 4);

byte[] buffer = new byte[msgLength];

ms.Position = 0;
GZipStream zip = new GZipStream(ms, CompressionMode.Decompress);
zip.Read(buffer, 0, buffer.Length);

return buffer;
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
}

C# 對稱 加密 解密 演算法 程式範例

C# 對稱 加密 解密 演算法 程式範例

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace DataCrypto
{
///
/// 對稱加密演算法
///
public class SymmetricMethod
{

private SymmetricAlgorithm mobjCryptoService;
private string Key;
///
/// 對稱加密的構造函數
///
public SymmetricMethod()
{
mobjCryptoService = new RijndaelManaged();
Key = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";
}
///
/// 獲得密鑰
///
/// 密鑰
private byte[] GetLegalKey()
{
string sTemp = Key;
mobjCryptoService.GenerateKey();
byte[] bytTemp = mobjCryptoService.Key;
int KeyLength = bytTemp.Length;
if (sTemp.Length > KeyLength)
sTemp = sTemp.Substring(0, KeyLength);
else if (sTemp.Length < stemp =" sTemp.PadRight(KeyLength," stemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk" byttemp =" mobjCryptoService.IV;" ivlength =" bytTemp.Length;"> IVLength)
sTemp = sTemp.Substring(0, IVLength);
else if (sTemp.Length < stemp =" sTemp.PadRight(IVLength,">
/// 加密
///
///

待加密的串
/// 經過加密的串
public string Encrypto(string Source)
{
byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
MemoryStream ms = new MemoryStream();
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
ms.Close();
byte[] bytOut = ms.ToArray();
return Convert.ToBase64String(bytOut);
}
///
/// 解密方法
///
/// 待解密的串
/// 經過解密的串
public string Decrypto(string Source)
{
byte[] bytIn = Convert.FromBase64String(Source);
MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
}
}
}

2009年1月5日 星期一

Web Service 透過IE 非本機叫用

修改改 Web.Config 檔案

在 <system.web> </system.web> 區段中加入下面這一段

<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
</protocols>
</webServices>

Web Service 教學 基本觀念( 建立 製作 使用 叫用 )

Web Service 很簡單,可參考以下連結教學

Web Service 教學

該網頁包含了 如何
建立 Web Service
叫用 Web Service

遺失或缺少 *.DLL 或 *.INF

可至以下兩個網頁中搜尋,並免費下載。

*.INF --> *.INF 搜尋
*.DLL --> *.DLL 搜尋