在線求助!vc中關(guān)于variant類型的問題~~ 求助,在線等,關(guān)于幼升小的問題
VARIANT的結(jié)構(gòu)可以參考頭文件VC98\Include\OAIDL.H中關(guān)于結(jié)構(gòu)體tagVARIANT的定義。
對于VARIANT變量的賦值:首先給vt成員賦值,指明數(shù)據(jù)類型,再對聯(lián)合結(jié)構(gòu)中相同數(shù)據(jù)類型的變量賦值,舉個例子:
VARIANT va;
int a=2001;
va.vt=VT_I4;///指明整型數(shù)據(jù)
va.lVal=a; ///賦值
對于不馬上賦值的VARIANT,最好先用Void VariantInit(VARIANTARG FAR* pvarg);進行初始化,其本質(zhì)是將vt設(shè)置為VT_EMPTY,下表我們列舉vt與常用數(shù)據(jù)的對應(yīng)關(guān)系:
Byte bVal; // VT_UI1.
Short iVal; // VT_I2.
long lVal; // VT_I4.
float fltVal; // VT_R4.
double dblVal; // VT_R8.
VARIANT_BOOL boolVal; // VT_BOOL.
SCODE scode; // VT_ERROR.
CY cyVal; // VT_CY.
DATE date; // VT_DATE.
BSTR bstrVal; // VT_BSTR.
DECIMAL FAR* pdecVal // VT_BYREF|VT_DECIMAL.
IUnknown FAR* punkVal; // VT_UNKNOWN.
IDispatch FAR* pdispVal; // VT_DISPATCH.
SAFEARRAY FAR* parray; // VT_ARRAY|*.
Byte FAR* pbVal; // VT_BYREF|VT_UI1.
short FAR* piVal; // VT_BYREF|VT_I2.
long FAR* plVal; // VT_BYREF|VT_I4.
float FAR* pfltVal; // VT_BYREF|VT_R4.
double FAR* pdblVal; // VT_BYREF|VT_R8.
VARIANT_BOOL FAR* pboolVal; // VT_BYREF|VT_BOOL.
SCODE FAR* pscode; // VT_BYREF|VT_ERROR.
CY FAR* pcyVal; // VT_BYREF|VT_CY.
DATE FAR* pdate; // VT_BYREF|VT_DATE.
BSTR FAR* pbstrVal; // VT_BYREF|VT_BSTR.
IUnknown FAR* FAR* ppunkVal; // VT_BYREF|VT_UNKNOWN.
IDispatch FAR* FAR* ppdispVal; // VT_BYREF|VT_DISPATCH.
SAFEARRAY FAR* FAR* pparray; // VT_ARRAY|*.
VARIANT FAR* pvarVal; // VT_BYREF|VT_VARIANT.
void FAR* byref; // Generic ByRef.
char cVal; // VT_I1.
unsigned short uiVal; // VT_UI2.
unsigned long ulVal; // VT_UI4.
int intVal; // VT_INT.
unsigned int uintVal; // VT_UINT.
char FAR * pcVal; // VT_BYREF|VT_I1.
unsigned short FAR * puiVal; // VT_BYREF|VT_UI2.
unsigned long FAR * pulVal; // VT_BYREF|VT_UI4.
int FAR * pintVal; // VT_BYREF|VT_INT.
unsigned int FAR * puintVal; //VT_BYREF|VT_UINT.
vc中COleVarian是什么意思
它是對結(jié)構(gòu)體VARIANT的封裝。VARIANT既包含數(shù)據(jù)本身,又包含數(shù)據(jù)類型,所以適合不同類型的數(shù)據(jù)傳輸。數(shù)據(jù)庫編程中經(jīng)常用到它。
在VC編程中Value.vt什么意思?pItem->Value.vt=VT_R8;
Value是pItem里的一個VARIANT型成員變量。VARIANT類型,是一種結(jié)構(gòu)體和共用體類型的綜合體數(shù)據(jù)類型,可以存儲幾乎任意類型的數(shù)據(jù)。自己看看MSDN,其成員變量vt是個枚舉行,代表當(dāng)前變量存儲的數(shù)據(jù)類型,等于VT_R8時表示的是8字節(jié)double型變量。然后變量值就存在其成員變量dblval中了。
VC如何替換word內(nèi)的指定字符串(用于替換的字符串比較長,用Execute老現(xiàn)實...
wdFindAsk 搜索完選定內(nèi)容或者區(qū)域后,Microsoft Word 會顯示一條消息,詢問是否搜索文檔的其他部分。wdFindContinue 到達搜索區(qū)域的開始或者結(jié)尾時,繼續(xù)執(zhí)行查找操作。wdFindStop 到達搜索區(qū)域的開始或者結(jié)尾時,停止執(zhí)行查找操作。Format Variant 類型,可選。如果為 True,則查找操作定位于格式或帶格式...
誰能幫我解釋一下這段程序的意思?最好每一句特別是開頭那幾句有什么...
你好"); 簡單了吧?!(注4)學(xué)生:老師,我再問最后一個問題,我如何用 VARIANT 保存一個數(shù)組?老師:這個問題很復(fù)雜,我現(xiàn)在不能告訴你,我現(xiàn)在告訴你怕你印象不深...(注5)學(xué)生:~!@#$%^&*()...暈!VARIANT 數(shù)據(jù)類型在文件OAIDL.IDL中定義如下:struct tagVARIANT { union { ...
MScomm控件VC接收數(shù)據(jù)問題,急!!!
建議用API來寫串口通訊,沒有這么多麻煩事兒 \/ 打開端口名稱 \/ string it_comm("\\\\\\.\\\\");try { it_comm.append("COM1");hCom = CreateFile(it_comm.c_str(), GENERIC_READ | GENERIC_WRITE , 0 , NULL , OPEN_EXISTING , 0 , NULL );if (hCom == INVALID_HANDLE_VALUE){ th...
VCRedistributePack 控件是什么
VCRedistributePack 控件是 nclude.menifest。到Microsoft.VC90.CRT文件夾下看Microsoft.VC90.CRT.manifest文件中的版本號,是9.0.30729.4148,而程序的版本號未必是這個。控件位置以及修改方案:設(shè)計時態(tài)和運行時態(tài)。在設(shè)計時態(tài)下,控件顯示在開發(fā)環(huán)境下的一個窗體中。設(shè)計時態(tài)下控件的方法不能被調(diào)用,控件...
COleVariant是什么數(shù)據(jù)類型
用于ole自動化的VARRANT類型,可以用于存儲多種格式 COleVariant 類通逢裝了 VARIANT 結(jié)構(gòu)。實際的數(shù)據(jù)就在 VARIANT 結(jié)構(gòu)中。VARIANT 結(jié)構(gòu)包含兩部分。其一是 VARTYPE 型的成員變量vt;其二是個聯(lián)合類型,這個聯(lián)合包含了VC常用的幾乎所有類型。因為聯(lián)合用的是相同的存儲空間,因此對聯(lián)合的內(nèi)容的解釋依賴于 ...
_variant_t, _bstr_t為什么在VC2005中不能用了?這些代碼在VC6中可都...
_bstr_t的定義:COMUTIL.H class _bstr_t { public:\/\/ Constructors \/\/ _bstr_t() throw();_bstr_t(const _bstr_t& s) throw();_bstr_t(const char* s) throw(_com_error);_bstr_t(const wchar_t* s) throw(_com_error);_bstr_t(const _variant_t& var) throw(_com_error...
問如何在vc++里使用mscomm控件啊?
VARIANT variant_inp;COleSafeArray safearray_inp;LONG len,k;BYTE rxdata[2048]; \/\/設(shè)置BYTE數(shù)組 An 8-bit integerthat is not signed.CString strtemp;switch(m_MSComm.GetCommEvent()){ case 1: \/\/ comEvSend發(fā)送數(shù)據(jù) break;case 2: \/\/ comEvReceive讀取數(shù)據(jù) \/\/ MessageBox(_T("讀取數(shù)據(jù)...
急等!!!如何在vc中將getrows獲得的記錄寫到數(shù)組中。
我們還真有緣啊!!long vtol(const _variant_t& variant){ long lValue = 0;switch( variant.vt ){ case VT_BOOL:lValue = variant.boolVal;break;case VT_UI1:case VT_I1:lValue = variant.bVal;break;case VT_UI2:case VT_I2:lValue = variant.iVal;break;case VT_I4:case VT_UI...
相關(guān)評說:
隆堯縣反轉(zhuǎn): ______ 我覺得可以,前段時間我在開發(fā)一個控件,領(lǐng)導(dǎo)要求在不安裝VC的機器上能夠重新編譯生成新的ocx.我將VC中編譯時用的一些dll/lib等文件提取出來COPY到?jīng)]有安裝VC的機器上進行編譯,沒想到竟然成功了.我說一下我的思路,不當(dāng)之處請指正:首先,利用VC開發(fā)出你的exe應(yīng)用程序,這個exe程序中完成第二步的配置,也就是你說的“某些選項”,這個可以做一個配置文件保存.然后,在第一步開發(fā)的exe程序中調(diào)用我上面說的從VC中提取出來的那些編譯文件進行編譯,就可以生成動態(tài)鏈接庫了.我覺得這個過程甚至可以在沒有安裝VC的干凈機器上完成.
隆堯縣反轉(zhuǎn): ______ .....第一個問題,別人可能是讓你去msn上去查相關(guān)的資料 vc里面建一個 app wizard(exe), 后面全默認(rèn)(如果你沒特別要求)命名為fileview就可以了啊.第二個問題, 在fileview中添加代碼,(你可以設(shè)置一個BUTTON,在他click消息函數(shù)中添加...
隆堯縣反轉(zhuǎn): ______ 不知道你的代碼是怎么樣的,我這邊調(diào)用ping的代碼如下,會直接彈出窗口顯示,你可以用這個代碼直接運行你的bat試試:using (Process p = new Process()) { p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = true; // 在當(dāng)前進...
隆堯縣反轉(zhuǎn): ______ #include using std::vector; struct POINT { long x; long y; }; int n = 100; vector arr(n); int main(int argc, char* argv[]) { int x = 100; vector arr2(x); return 0; } 代碼功編譯(VC6)
隆堯縣反轉(zhuǎn): ______ 7行讀取應(yīng)該沒問題吧 前6行讀取空項認(rèn)記錄效
隆堯縣反轉(zhuǎn): ______ printf("data=");你這最后輸出光寫著data=,也沒有傳入數(shù)值啊.那個n才是你需要的數(shù)字,你把n輸出來才是你...
隆堯縣反轉(zhuǎn): ______ 英文的意思就是說文末沒有換行符.Unix文檔的回車換行符是一個字符\n,Windows的是分別的兩個\n\r,所以你在Windows下編輯的最后一個字符是\r不是\n,所以編譯器以為有錯誤. 在文件最后補一個新行即可
隆堯縣反轉(zhuǎn): ______ 2個解決辦法:(1)項目——>屬性——>連接器——>清單文件 中生成清單 “是” 修改為 “否” 該方法一般都可以解決問題,但是每次創(chuàng)建項目都要設(shè)置一次.(2)查找是否有兩個cvtres.exe 刪除較舊版本. 第一個是在你 VS2010安裝目錄下 如(C:\Program Files\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe) ; 第二個是C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe 通過右鍵查看屬性,查看文件版本號,刪除較舊版本即可. 該方法可以徹底解決這個問題,之后創(chuàng)建項目不需要再次修改清單文件.