葱花's profile伊斯坦布尔之泪PhotosBlogListsMore ![]() | Help |
|
伊斯坦布尔之泪之所以取这个名字是来源于一个故事~~~~
February 27 VARIANT类型的用法 VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义。
对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,举个例子: VARIANT va; int a=2001; va.vt=VT_I4;///指明整型数据 va.lVal=a; ///赋值 对于不马上赋值的VARIANT,最好先用Void VariantInit(VARIANTARG FAR* pvarg);进行初始化,其本质是将vt设置为VT_EMPTY,下表我们列举vt与常用数据的对应关系: unsigned char 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 IUnknown FAR* punkVal; VT_UNKNOWN IDispatch FAR* pdispVal; VT_DISPATCH SAFEARRAY FAR* parray; VT_ARRAY|* unsigned char 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; VT_BYREF _variant_t是VARIANT的封装类,其赋值可以使用强制类型转换,其构造函数会自动处理这些数据类型。 例如: long l=222; ing i=100; _variant_t lVal(l); lVal = (long)i; COleVariant的使用与_variant_t的方法基本一样,请参考如下例子: COleVariant v3 = "字符串", v4 = (long)1999; CString str =(BSTR)v3.pbstrVal; long i = v4.lVal February 15 ERRORQ:我编写了正规DLL导出了一个类,然后编写客户程序,设好了lib文件,编译时出现如下错误:
Linking... LINK : fatal error LNK1104: cannot open file "D:\Visual.obj" Error executing link.exe. A:Lib路径中包含空格的时候,要用引号括起来 September 01 假期over结束——我讨厌这个词。这个假期我经历了四次分离,第一次是和小巨,似乎是很久以前了,小巨回来就忘了;第二次是和北京的室友,匆匆走了因为要赶公车,没说什么,却很后悔;第三次就是和师兄们,第四次就是和爸妈啦。 August 24 我的朋友假期就要结束了,很多人说我的假期很精彩。确实!去了北京,上了梦寐以求的新东方,自己过了21天的生活,在学校里做车库,认识了一群优秀的师兄师姐。我也觉得很不错,在家也生活得很舒服。但总是少些什么。也许他们都没回来吧。 |
|||||||||||||
|
|