[FileZilla Server] 加載的驗證 DLL
在上一篇文章我有提到我利用自己撰寫的 dll 來驗證帳號及密碼
那這篇文章就是介紹我倒底是如何進行撰寫的
我使用平台是 Visual Studio 2010 ,先在 Visual C++ 裡選擇 Win32
在右邊有Win32主控台應用程式,在應用程式設定裡選擇 DLL
那為了快速就開發出來,我偷偷透過 CLR 方式來使用
就是可以直接使用 .Net 有的東西,不過這東西就期望效能,比較多的是笑能
正道還是透過撰寫 WinSocket 的程式來進行資料傳輸和判斷吧
如何設置 CLR 呢?在該專案的屬性頁中找到[組態屬性]->[一般],右邊的 Common Language Runtime 支援 下拉成 Common Language Runtime 支援 (/clr) 即可
接下來則到 通用屬性 中把你有使用到的 .Net 參考給加進去,以我今天要示範的程式為例,會有
System
System.Net
System.Web
三個參考需被加入
而在 header (.h) 檔中加入以下句子
而之後在 cpp 檔加入以下的程式碼
我裡面主要是透過 WebClient 進行網頁的連線並取回結果
那這篇文章就是介紹我倒底是如何進行撰寫的
我使用平台是 Visual Studio 2010 ,先在 Visual C++ 裡選擇 Win32
在右邊有Win32主控台應用程式,在應用程式設定裡選擇 DLL
那為了快速就開發出來,我偷偷透過 CLR 方式來使用
就是可以直接使用 .Net 有的東西,不過這東西就期望效能,比較多的是笑能
正道還是透過撰寫 WinSocket 的程式來進行資料傳輸和判斷吧
如何設置 CLR 呢?在該專案的屬性頁中找到[組態屬性]->[一般],右邊的 Common Language Runtime 支援 下拉成 Common Language Runtime 支援 (/clr) 即可
接下來則到 通用屬性 中把你有使用到的 .Net 參考給加進去,以我今天要示範的程式為例,會有
System
System.Net
System.Web
三個參考需被加入
而在 header (.h) 檔中加入以下句子
extern "C" __declspec(dllexport) bool VerifyByDiscuz(const char* uid, const char* pw);
而之後在 cpp 檔加入以下的程式碼
__declspec(dllexport) bool VerifyByDiscuz(const char* account, const char* password) { String^ s_account = gcnew String(account); String^ s_password = gcnew String(password); String^ InfoAddress = String::Format("http://localhost/myverify.php?account={0}&md5_password={1}", s_account, s_password); StreamReader^ sr = nullptr; try { WebClient^ wc = gcnew WebClient(); sr = gcnew StreamReader(wc->OpenRead(InfoAddress), Encoding::ASCII); String^ buffer = sr->ReadToEnd(); if (buffer == "ok") return true; } catch (Exception^) { } finally { if (sr != nullptr) sr->Close(); } return false; }
我裡面主要是透過 WebClient 進行網頁的連線並取回結果
留言
張貼留言