c++学习备注4--一些错误的修改

来源:互联网 发布:淘宝网店铺专业版 编辑:程序博客网 时间:2024/05/22 13:47

想用vs2008 中的托管c++做过类库。首先碰到了一个问题是编译出现“无法解析的外部符号错误”,以前也碰到过。忘记记下里了。

多次试验,发现去掉include “highgui.h”的引用问题就没有了。看了以前的例子,include "highgui.h"是在h文件中写的。不是写在cpp文件中。网上的方法都试遍了,也没有解决。结果发现时没有把cxcore200.lib cv200.lib highgui200.lib 放到依赖项中 。

在类中加了一个方法后又出现了“无法解析的标记错误”,这次有经验了,马上怀疑是只定义没实现有关系。以前用c++做winform程序的时候碰到过。首先要在cpp文件中using h文件中定义的namespace,然后实现这个方法就可以了。

cpp文件中如下:

// 这是主 DLL 文件。

#include "stdafx.h"
#include "WinRoutines4opencv.h"

using namespace WinRoutines4opencv;

IplImage* cvWinExt::bmp2ipl(System::Drawing::Bitmap ^bmp)
{
 IplImage* img;
 return img;
}
Bitmap^ cvWinExt::ipl2bmp(IplImage* image)
{

 Bitmap^ bmp;

return bmp;

}

 

在吧char* 类型转换成string类型时也碰到些错误,“string类型无法转换成string^类型”

最后用

System::String^ cvWinExt:: charArray2string(char* ca)
{
 System::String^ s=gcnew String(ca);
 
 return s;
}搞定

 

做好的类库在测试的时候发现运行时错误“找不到指定的模块”,结果发现时修改了opencv的路径所至。直接复制opencv的dll到exe文件路径下就可以了。

 

接着在调用其中一个函数的时候又出现“候选函数不可访问”编译错误。

猜测可能也和opencv有关。因为另外两个没有使用iplImage类型的函数都正常。

测试了下确实是iplImage引起的。去掉就可以。

后来在国外的一篇文章中查到方法。在动态库的h文件中加上对自定义结构的make public申明

如下:

#pragma make_public(_IplImage)

加在h文件和cpp文件的最上面。

还有一种情况会造成候选函数不可访问是可见度修饰符造成的

在c#中 可以这么写 static public function()

在c++中,得写成

public:

  static func();

否则也会类中的造成函数不可见。

现在碰到一个视乎比较难办的问题“函数在当前语言不可用”

结果发现是函数参数格式不对。function(object  o),应该改成function(object^ o)这样才能把地址传进去。

 

测试程序可以运行了。问题又来了。调用这些个dll的c#代码似乎根本没执行。结果更加没任何变化。

重新生成测试程序。搞定。dll可以调用了。

接下去的问题是运行时出现异常。结果出不来。估计和图像格式转换,以及参数方式有关系。慢慢解决了。

2010-1-31下面把mlp封装到类库。

第一个问题是c4368,CvAnN_MLP是非托管类,不能直接封装。但可以用指针来做 CvANN_MLP * mlp,,参看微软示例。

然后碰到的是对非静态成员的非法引用问题。

原来是因为试图在静态函数里访问非静态成员造成的。把静态函数改成非静态函数就好了。

接下去又出现了无法解析的外部符号错误,参照本文前面的进行修改。

最后调用mlp->train时候又出现了runtime错误。debug后解决。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 二个多月的宝宝拉肚子怎么办 宝宝肚子着凉吐怎么办 孩子胃着凉呕吐怎么办 一岁受凉呕吐怎么办 孩子着凉了呕吐怎么办 小孩受凉呕吐腹泻怎么办 宝宝胃受寒呕吐怎么办 一岁半宝宝受寒呕吐怎么办 治小儿反复发烧怎么办 海洋宝宝吃下去怎么办 两岁儿童拉肚子怎么办 14天宝宝拉肚子怎么办 小孩不消化引起发烧怎么办 宝宝胃胀呕吐怎么办 小儿胃胀不消化怎么办 4岁小儿腹胀怎么办 两岁半的宝宝吐怎么办 月子宝宝闹人怎么办 宝宝一周岁拉肚子怎么办 一岁幼儿呕吐怎么办 孩子受凉呕吐拉肚子怎么办 5岁儿童呕吐怎么办 小孩发烧老是吐怎么办 宝宝吃雪糕呕吐怎么办 小孩感冒发烧吐怎么办 宝宝呕吐加发热怎么办 七个月宝拉肚子怎么办 新生儿17天拉稀怎么办 七个半月宝宝拉肚子怎么办 七个月婴儿拉稀怎么办 宝宝不停的拉稀怎么办 猫咪受凉了呕吐怎么办 孩子生理性腹泻怎么办 婴儿肚子受凉了怎么办 小孩说话有点口吃怎么办 3岁宝宝先拉后吐怎么办 1岁宝宝拉肚子怎么办 2岁宝宝结巴怎么办 小孩吐和拉肚子怎么办 头外伤后头晕怎么办 紧张性神经头痛怎么办