CAPICOM在BCB上使用的問題... |
尚未結案
|
algo
一般會員 發表:4 回覆:21 積分:10 註冊:2003-04-15 發送簡訊給我 |
各先先進:
在下最近使用CAPICOM 2.0.0.3來對Certificate作操作,
原本參考VB上面的用法以及把capicom.dll當作Type Libary
來用,但是出現了型態轉換的問題,程式碼如下: Store1->Open(CAPICOM_CURRENT_USER_STORE, L"MY", CAPICOM_STORE_OPEN_READ_WRITE);
Certificates1->ConnectTo(Store1->Certificates->Select(L"個人憑證檢視",L"請選擇要匯出之憑證.",false));
Certificate1->ConnectTo(Certificates1->get_Item(1));
Edit1->Text = AnsiString(Certificate1->get_IssuerName()); 在Certificate1->ConnectTo(Certificates1->get_Item(1));
會出現型態不符的問題,查了Certificates1->get_Item(1)回傳的型態
是TVariant應該會帶型態回來,但是看來是在下使用方法錯誤了^^;
希望有經驗的先進能夠多多指教,Thanks!
PS:在下把capicom.dll由Import Type Libary匯入使用 ???
------
??? |
algo
一般會員 發表:4 回覆:21 積分:10 註冊:2003-04-15 發送簡訊給我 |
補充一下:
unit1.hpp宣告:
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TCertificate *Certificate1;
TCertificates *Certificates1;
TStore *Store1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
}; unit1.cpp程式部分:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Store1->Open(CAPICOM_CURRENT_USER_STORE, L"MY", CAPICOM_STORE_OPEN_READ_WRITE);
Certificates1->ConnectTo(Store1->Certificates->Select(L"test", L"test", false));
if (Certificates1->Count <= 0 || Certificates1->Count > 1)
ShowMessage("Select cert ERROR!");
else
Certificate1->ConnectTo(ICertificatePtr(Certificates1->get_Item(1)));
} 執行時發生的錯誤訊息:
'this->get_Item(index, (VARIANT*)&pVal)':型態錯誤!
@c:\....\cbuilder6\Import\CAPICOM_TLB.h line2220 看訊息是錯在BCB import capicom.dll時自動產生的標頭
檔有問題,但是還是找不出問題原因所在...請各位先進指教
Thanks! ??? 發表人 - algo 於 2004/08/20 18:09:11
------
??? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |