6742|19

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE下调用DLL的问题 [复制链接]

用EVC开发,WINCE4.2
为何我调用动态链接库总是说"找不到testdlg(或他的某一个组件)"
其中testdlg调用testdll,在VC下试通过了啊
请各位帮帮忙,看看是什么原因,WINCE下调用动态链接库有什么特殊的地方么?

最新回复

这位大哥我现在也碰到这个问题了你是怎么解决的??  详情 回复 发表于 2010-3-27 21:13
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
dll也必须是通过EVC编译的!因为要在CE的系统里跑,本身也必须是CE的,估计你是把dll(VC6编译的),直接拷进去用,那样是不行的.
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
Wince 的 CPU 是不一样的
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
不是的,我是用EVC编译的,所编译运行的平台也都是WINCE
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
sdk不配吧

 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
SDK也是WINCE平台导出来的那个,EVC开发环境一直没有变化
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

7
 
testdll文件你有没有放到你的设备或者仿真器上去?如果没有的话,当然是这样了。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

8
 
全都放到设备上了,对了,我的应用程序跟DLL都在设备的SD卡中
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

9
 
还有,我采用的是隐式链接
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 
各位大侠,救命啊
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

11
 
你把dll文件拷贝到windows目录试一下。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

12
 
如果CPU类型对的话..那一切简单...将DLL拷贝到windows目录下就行了...程序路径任意..
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

13
 
不知道为什么,还是不行!我将dll拷贝到\windows目录下了,但还没成功
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

14
 
给出调用的源代码来看看吧
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

15
 
好!
这是扩展MFC的动态库(平台已经支持MFC)
#include "stdafx.h"
#include

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

static AFX_EXTENSION_MODULE EvcdllDLL = { NULL, NULL };

extern "C" int APIENTRY
DllMain(HANDLE hInstance, DWORD dwReason, LPVOID lpReserved)
{
        if (dwReason == DLL_PROCESS_ATTACH)
        {
                TRACE0("EVCDLL.DLL Initializing!\n");               
       
                if (!AfxInitExtensionModule(EvcdllDLL, (HINSTANCE)hInstance))
                        return 0;       

                new CDynLinkLibrary(EvcdllDLL);
        }
        else if (dwReason == DLL_PROCESS_DETACH)
        {
                TRACE0("EVCDLL.DLL Terminating!\n");
       
                AfxTermExtensionModule(EvcdllDLL);
        }
        return 1;   // ok
}

__declspec(dllexport) int sum(int a,int b)
{
        return a+b;
}

这是调用代码(在工程project-setting-link中已经设置链接动态库的LIB)
__declspec(dllimport) int sum(int a,int b);
void CEvcdlgDlg::OnButton1()
{       
        m_iSum=sum(3,4);
}
就是这个样子,不知道为什么不能运行!!
我尝试改成VC下,是可以的,为何在WINCE下不行呢?
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

16
 
诸位,帮忙看看啊!
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

17
 
增添一个.def文件,在文件中写入导出函数吧.
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

18
 
改成动态的好了,loadlibray,getprocaddress
我估计是路径的问题,wince使用绝对路径,不要静态连接
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

19
 
恩,回头调试下,现出差在外,没法修改,现揭帖了吧,分不多,多谢各位
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

20
 
这位大哥我现在也碰到这个问题了你是怎么解决的??
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表