一个调试问题:Invalid Address specified to RtlSizeHeap,麻烦看看!
不知问题出在哪了? 麻烦高手看看。谢谢!
代码如下:
#include <vector>
//-----------------------------------------------------------------
// Property.CPP
//-----------------------------------------------------------------
class CProperty {
public:
CProperty(){
m_bstrPropName = BSTR("");
m_bstrPropValue = BSTR("");
}
virtual ~CProperty(){}
private:
BSTR m_bstrPropName;
BSTR m_bstrPropValue;
};
//-----------------------------------------------------------------
//-----------------------------------------------------------------
// DataBuffer.H
//-----------------------------------------------------------------
typedef std::vector<CProperty, std::allocator<CProperty> > PROPERTYVECTOR;
class CDataBuffer {
public:
BSTR GetData();
BSTR GetKey();
boolean SetKey(BSTR bstrKey);
boolean SetData(BSTR bstrData);
CDataBuffer(){}
virtual ~CDataBuffer(){}
private:
CComBSTR m_bstrKey;
CComBSTR m_bstrData;
PROPERTYVECTOR m_Prop;
};
// DataBuffer.CPP
boolean CDataBuffer::SetData(BSTR bstrData){
m_bstrData.Attach(bstrData);
return true;
}
boolean CDataBuffer::SetKey(BSTR bstrKey){
m_bstrKey.Attach(bstrKey);
retur true;
}
BSTR CDataBuffer::GetKey(){
return m_bstrKey.Copy();
}
BSTR CDataBuffer::GetData(){
return m_bstrData.Copy();
}
//-----------------------------------------------------------------
//-----------------------------------------------------------------
// Center.H
//-----------------------------------------------------------------
class ATL_NO_VTABLE CCenter :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CCenter, &CLSID_Center>,
public IDispatchImpl<ICenter, &IID_ICenter, &LIBID_MRSERVERLib>
{
public:
CCenter(){ }
DECLARE_REGISTRY_RESOURCEID(IDR_CENTER)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CCenter)
COM_INTERFACE_ENTRY(ICenter)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
// ICenter
public:
STDMETHOD(Add)(/*[in]*/ BSTR bstrKey, /*[in]*/ BSTR bstrInfo, /*[out,retval]*/ long* pResult);
};
// Center.CPP
typedef std::vector<CDataBuffer, std::allocator<CDataBuffer> > DATAVECTOR;
DATAVECTOR gData;
STDMETHODIMP CCenter::Add(BSTR bstrKey, BSTR bstrInfo,long* pResult){
CComBSTR bstrTmp(bstrKey);
if( bstrTmp.Length() == 0 ){
*pResult = -1;
return S_FALSE;
}
DATAVECTOR::iterator oIterator;
CDataBuffer* pDB = NULL;
CComBSTR thisKey(bstrKey);
for(oIterator = gData.begin(); oIterator != gData.end(); oIterator ++){
pDB = oIterator;
CComBSTR bstr(pDB->GetKey());
if( bstr == thisKey ){
*pResult = -2;
return S_FALSE;
}
}
CDataBuffer oDB;
oDB.SetKey(bstrKey);
oDB.SetData(bstrInfo);
gData.push_back(oDB);
*pResult = gData.size();
return S_OK;
}
//-----------------------------------------------------------------
//-----------------------------------------------------------------
// MRServer.idl
//-----------------------------------------------------------------
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(78E1AFD6-4AD7-4232-8F56-0935BCC82762),
dual,
helpstring("ICenter Interface"),
pointer_default(unique)
]
interface ICenter : IDispatch
{
[id(1), helpstring("method Add")] HRESULT Add([in] BSTR bstrKey, [in] BSTR bstrInfo, [out,retval] long* plResult);
};
[
uuid(70484CAC-5FA6-4863-9FE0-48225B26F940),
version(1.0),
helpstring("MRServer 1.0 Type Library")
]
library MRSERVERLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(E351DEB7-48A8-474E-ABE2-3173BF575298),
helpstring("Center Class")
]
coclass Center
{
[default] interface ICenter;
};
};
//-----------------------------------------------------------------
//-----------------------------------------------------------------
// 调试代码(VB)
//-----------------------------------------------------------------
Private Sub Command1_Click()
Dim obj, i As Long
Dim n As Long
Set obj = CreateObject("MRServer.Center")
n = obj.Add("KEY_2", 6)
Debug.Print "First: " & n
For i = 1 To 9
n = obj.Add("KEY_" & i, "ITME_" & i)
Next
n = obj.Add("KEY_5", "d")
End Sub
//-----------------------------------------------------------------
相关推荐
西瓜成熟度图像分类数据集【已标注,约600张数据】
西瓜成熟度图像分类数据集【已标注,约600张数据】 分类个数【3】:成熟、半熟、未熟【具体查看json文件】 划分了训练集、测试集。存放各自的同一类数据图片。如果想可视化数据集,可以运行资源中的show脚本。 CNN分类网络改进:https://blog.csdn.net/qq_44886601/category_12858320.html 【更多图像分类、图像分割(医学)、目标检测(yolo)的项目以及相应网络的改进,可以参考本人主页:https://blog.csdn.net/qq_44886601/category_12803200.html】
Spring事务和MySQL事务详解面试
文章目录数据库事务事务是什么事务的四大特性MySQL事务隔离级别查看MySQL当前事务隔离级别MySQL默认操作模式为自动提交模式JDBC处理事务Spring事务Spring的事务传播PROPAGATION_REQUIREDPROPAGATION_SUPPORTSPROPAGATION_MANDATORYPROPAGATION_REQUIRES_NEWPROPAGATION_NOT_SUPPORTEDPROPAGATION_NEVERPROPAGATION_NESTEDSpring事务的隔离级别Spring
西瓜病识别图像分类数据集【已标注,约5,700张数据】
西瓜病识别图像分类数据集【已标注,约5,700张数据】 分类个数【4】:花叶病毒、健康、炭疽病和霜霉病【具体查看json文件】 划分了训练集、测试集。存放各自的同一类数据图片。如果想可视化数据集,可以运行资源中的show脚本。 CNN分类网络改进:https://blog.csdn.net/qq_44886601/category_12858320.html 【更多图像分类、图像分割(医学)、目标检测(yolo)的项目以及相应网络的改进,可以参考本人主页:https://blog.csdn.net/qq_44886601/category_12803200.html】
西瓜成熟度识别数据集,13358张原始图,正确识别率98.8%,支持YOLO v11格式标注
西瓜成熟度识别数据集,13358张原始图,正确识别率98.8%,支持YOLO v11格式标注 两个标记: ripe和unripe 识别成熟和未成熟的西瓜
36 种常见(水果和蔬菜图像)图像分类数据集【已标注,约3400张数据】
36 种常见(水果和蔬菜图像)图像分类数据集【已标注,约3400张数据】 数据经过预处理,可以直接作为分类网络输入使用 分类个数【36】:香蕉、苹果、梨、葡萄、橙子、猕猴桃、西瓜、石榴、菠萝、芒果、黄瓜、胡萝卜、辣椒、洋葱、马铃薯、柠檬、番茄、萝卜、甜菜根、卷心菜、生菜、菠菜、大豆、花椰菜、甜椒、辣椒、萝卜、玉米、甜玉米、甘薯、辣椒粉、墨西哥辣椒、姜、大蒜、豌豆、茄子【具体查看json文件】 划分了训练集、验证集。存放各自的同一类数据图片。如果想可视化数据集,可以运行资源中的show脚本。 图像分类、分割网络改进:https://blog.csdn.net/qq_44886601/category_12858320.html 计算机视觉完整项目:https://blog.csdn.net/qq_44886601/category_12816068.html


