在ASP程序中如何分别读取到结构体中的数据,然后在网页中显示出来?? 看过别人的例子,在ASP程序中,通过 Tmp = .Read 方式读取到COM控件的数据。这个Read 的参数只有一个, 即BSTR* pVal,STDMETHODIMP CControl1::get_Read(BSTR* pVal)。 在我的COM控件的Read属性中,该属性下有一个结构体,现在我的问题是,在ASP程序中如何分别读取到结构体中的数据,然后在网页中显示出来?? 谢谢各位指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以把结构体的各个字段拆出来,用VARIANT数组进行传递 http://topic.csdn.net/u/20091105/11/7c3934a1-7911-45e1-9270-144fc6029829.html这里有更加详细的讲解 谢谢Tr0j4n给出的网址,那网址的这些代码对我有用, STDMETHODIMP CAXSampleCtl::PutData(VARIANT *val){ CComSafeArray<VARIANT> m_psa; //封装m_sa数组 CComSafeArray<VARIANT> m_sa; //这个数组用于封装MyData数据接口 m_sa.Add(CComVariant(8)); m_sa.Add(CComVariant(2)); m_sa.Add(CComVariant(L"LZY1")); m_psa.Add(CComVariant(m_sa)); m_sa.Destroy(); m_sa.Add(CComVariant(11)); m_sa.Add(CComVariant(5)); m_sa.Add(CComVariant(L"LZY2")); m_psa.Add(CComVariant(m_sa)); m_sa.Destroy(); m_sa.Add(CComVariant(13)); m_sa.Add(CComVariant(4)); m_sa.Add(CComVariant(L"LZY3")); m_psa.Add(CComVariant(m_sa)); m_sa.Destroy(); m_sa.Add(CComVariant(15)); m_sa.Add(CComVariant(1)); m_sa.Add(CComVariant(L"LZY4")); m_psa.Add(CComVariant(m_sa)); m_sa.Destroy(); CComVariant var(m_psa); var.Attach(val);} 有两个问题不清楚: 1、为什么要用到两个数组 m_psa和m_sa?后面的注释说得笼统了,能否详细点。 2、最后两句代码怎么理解CComVariant var(m_psa); var.Attach(val); 谢谢! 1、为什么要用到两个数组 m_psa和m_sa?后面的注释说得笼统了,能否详细点。--------------------------- 你完全没看懂这些代码。m_sa.Add(CComVariant(8)); m_sa.Add(CComVariant(2)); m_sa.Add(CComVariant(L"LZY1")); m_psa.Add(CComVariant(m_sa)); m_sa.Destroy(); m_sa.Add(CComVariant(11)); m_sa.Add(CComVariant(5)); m_sa.Add(CComVariant(L"LZY2")); m_psa.Add(CComVariant(m_sa)); m_sa.Destroy();像如上的代码,其实代表的意思就等于是每次m_sa里面就是一个对象,那个对象有3个字段。而m_psa里面放的则是多个对象,是对象的数组 2、最后两句代码怎么理解CComVariant var(m_psa); var.Attach(val);---------------------------还用解释吗? List<myStruct> m_psa;struct myStruct m_sa;m_sa.x=1;m_sa.y=2;m_sa.name="tr0j4n";m_psa.add(m_sa);struct myStruct m_sa2;m_sa2.x=6;m_sa2.y=2;m_sa2.name="LZ";m_psa.add(m_sa2);懂了吗? 谢谢你的讲解,同时也让我看懂了javascript代码中两个参数的意义 data.getItem(n,0),n代表第n个对象,0代表第n个对象的第0个字段。 现在想问你另外一个问题:我在a.h中定义一个结构体typedef struct _SData{ char date[11]; char time[9]; char lon[11]; }SData,*PSData;extern PSData pGData = NULL;在b.cpp中这样char wd[11]; int i; for(i=0;i<11;i++) { wd[i] = * pGData ->lon[i]; }编译提示错误是:error C2100: illegal indirection是这句 wd[i] = * pGData ->lon[i];错了,怎么修改,谢谢你。 如何动态调用dll中类的成员变量::std::vector<> CryptApi 的使用问题 求三维坐标系下 线与面的遮挡关系 算法 cstring 类型如何与""比较 点对点通讯,那种方式效率最高 关于从CWnd派生的问题! 十万火急!!!求救!!!!在线等待!!!狂发100分!!!!!!!! 哪位大虾遇到过这种怪现象? ▲▲Com+远程创建中碰到“拒绝的权限“的问题? 求计算图象中每个像素点的灰度值的函数. 急! __declspec(thread)似乎在汇编一级并没有为变量生成多份拷贝,它到底是怎么工作的? 关于列表控件的问题,麻烦大人们看看
这里有更加详细的讲解
谢谢Tr0j4n给出的网址,那网址的这些代码对我有用,
STDMETHODIMP CAXSampleCtl::PutData(VARIANT *val)
{
CComSafeArray<VARIANT> m_psa; //封装m_sa数组
CComSafeArray<VARIANT> m_sa; //这个数组用于封装MyData数据接口 m_sa.Add(CComVariant(8));
m_sa.Add(CComVariant(2));
m_sa.Add(CComVariant(L"LZY1"));
m_psa.Add(CComVariant(m_sa));
m_sa.Destroy(); m_sa.Add(CComVariant(11));
m_sa.Add(CComVariant(5));
m_sa.Add(CComVariant(L"LZY2"));
m_psa.Add(CComVariant(m_sa));
m_sa.Destroy(); m_sa.Add(CComVariant(13));
m_sa.Add(CComVariant(4));
m_sa.Add(CComVariant(L"LZY3"));
m_psa.Add(CComVariant(m_sa));
m_sa.Destroy(); m_sa.Add(CComVariant(15));
m_sa.Add(CComVariant(1));
m_sa.Add(CComVariant(L"LZY4"));
m_psa.Add(CComVariant(m_sa));
m_sa.Destroy();
CComVariant var(m_psa);
var.Attach(val);
}
有两个问题不清楚:
1、为什么要用到两个数组 m_psa和m_sa?后面的注释说得笼统了,能否详细点。
2、最后两句代码怎么理解CComVariant var(m_psa); var.Attach(val);
谢谢!
---------------------------
你完全没看懂这些代码。
m_sa.Add(CComVariant(8));
m_sa.Add(CComVariant(2));
m_sa.Add(CComVariant(L"LZY1"));
m_psa.Add(CComVariant(m_sa));
m_sa.Destroy(); m_sa.Add(CComVariant(11));
m_sa.Add(CComVariant(5));
m_sa.Add(CComVariant(L"LZY2"));
m_psa.Add(CComVariant(m_sa));
m_sa.Destroy();像如上的代码,其实代表的意思就等于是每次m_sa里面就是一个对象,那个对象有3个字段。
而m_psa里面放的则是多个对象,是对象的数组 2、最后两句代码怎么理解CComVariant var(m_psa); var.Attach(val);
---------------------------
还用解释吗?
m_sa.x=1;
m_sa.y=2;
m_sa.name="tr0j4n";
m_psa.add(m_sa);struct myStruct m_sa2;
m_sa2.x=6;
m_sa2.y=2;
m_sa2.name="LZ";
m_psa.add(m_sa2);懂了吗?
谢谢你的讲解,同时也让我看懂了javascript代码中两个参数的意义 data.getItem(n,0),n代表第n个对象,0代表第n个对象的第0个字段。
现在想问你另外一个问题:
我在a.h中定义一个结构体
typedef struct _SData
{
char date[11];
char time[9];
char lon[11];
}SData,*PSData;
extern PSData pGData = NULL;在b.cpp中这样
char wd[11];
int i;
for(i=0;i<11;i++)
{
wd[i] = * pGData ->lon[i];
}
编译提示错误是:error C2100: illegal indirection
是这句 wd[i] = * pGData ->lon[i];错了,怎么修改,谢谢你。