3326|11

15

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

智能设备DLL [复制链接]

想用 vs2005 做一个智能设备的 DLL
导出自己写的一个类
该怎么做?

最新回复

还是没有搞定   还是有无法解析的符号!  详情 回复 发表于 2009-2-18 15:45
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这个和VC差不多的

看看孙鑫的视频教程即可。
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
类里边的函数不用,只在类上用就行了。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
    error LNK2019: 无法解析的外部符号 "public: int __cdecl CWmDllTestApp::Add(int,int)" (?Add@CWmDllTestApp@@QAAHHH@Z),该符号在函数 "public: void __cdecl CTestWmDllView::OnAdd(void)" (?OnAdd@CTestWmDllView@@QAAXXZ) 中被引用
    error LNK2019: 无法解析的外部符号 "public: __cdecl CWmDllTestApp::CWmDllTestApp(void)" (??0CWmDllTestApp@@QAA@XZ),该符号在函数 "public: void __cdecl CTestWmDllView::OnAdd(void)" (?OnAdd@CTestWmDllView@@QAAXXZ) 中被引用
    error LNK2019: 无法解析的外部符号 "public: int __cdecl CWmDllTestApp::Multiply(int,int)" (?Multiply@CWmDllTestApp@@QAAHHH@Z),该符号在函数 "public: void __cdecl CTestWmDllView::OnMultiply(void)" (?OnMultiply@CTestWmDllView@@QAAXXZ) 中被引用

1>Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\Debug\TestWmDll.exe : fatal error LNK1120: 3 个无法解析的外部命令

1>生成日志保存在“file://e:\My Program\TestWmDll\TestWmDll\Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\Debug\BuildLog.htm”

1>TestWmDll - 4 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========


类是这样定义的
class __declspec(dllexport) CWmDllTestApp : public CWinApp
{
public:
        CWmDllTestApp();

        int Add(int n1, int n2);
        int Multiply(int n1, int n2);

// 重写
public:
        virtual BOOL InitInstance();

        DECLARE_MESSAGE_MAP()
};

 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

5
 
和导出函数一样导出就行了,
class  __declspec(dllexport) ClassA
{
};
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
类里面的函数是不是就不用 __declspec(dllexport) 了?
.h  和 .cpp 里面类和函数的声明及定义该怎么写?
我搞了一下午,总提示说有“无法解析的符号 @@@@@   在.....被引用”
能不能给个简单的例子?
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 
使用的工程里加了,你这个DLL对应的Lib文件么?
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
DLL 拷贝过去了   Lib文件也加进去了
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

9
 
加 extern "C"
这个问题是由于 c++ 在编译的时候把所以的函数都加了一个别名,比如 Init() 编译后可能成为    Init23xxx() 等,你要在 C 程序中调用c++编译后的函数的话,就需要在 c++ 的头文件中用 extern "C" 声明需要导出的函数,强制编译器不要对函数添加别名。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

10
 
APP类无需导出去,你在项目中添加了类CCommonCls

则在stdafx.h中添加
#define DLLCLASS_EXPORT __declspec(dllexport)

在CommonCls.h中写

#ifndef DLLCLASS_EXPORT
   #define DLLCLASS_EXPORT  __declspec(dllimport)
   #pragma comment(lib,"CommonCls.lib")
   #pragma message("Automatically linking with CommonCls.dll")
#endif

class  DLLCLASS_EXPORT  CCommonCls
{
......
};
在其他项目中,只需把该头文件CommonCls.h考贝过去包含就可以用了。lib文件考过去。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

11
 
用向导吧
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

12
 
还是没有搞定   还是有无法解析的符号!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表