DLL project运行时找不到entry point? why? 高手请进。。。。。。 可能是呢的类定义没有加上 __declspec( dllimport ) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用Depends来查看一下你的要调用的DLL是否有调用的函数,可能函数名不对. 类定义如下:#ifdef MYSERIALDLL_EXPORTS#define MYSERIALDLL_API __declspec(dllexport)#else#define MYSERIALDLL_API __declspec(dllimport)#endifclass MYSERIALDLL_API CMySerialDll 调用的DLL中的类:CMySerialDll mySerialDll;只有这一句话,如果去掉的话,就没有错误!但是也没有调用DLL的export的类啊!:-(( 唯一的可能就是你没有正确 export 类或函数 。如你所说,在你编译DLL,在你dll工程里 里面是否有定义宏 MYSERIALDLL_EXPORTS ?你可以用VC的工具Depences 看看你的dll是否有export出来的类和函数。仔细检查一下吧! 在DLL的project中的DllMain中不做任何处理,是否与此有关?我一直在想是否需要一个初始化函数来生成一个对象实例。在我的代码中找不到这种函数,我也是看别人的代码,没有找到可能的函数。 请教如何使用VC的工具Depences 查看dll是否有export出来的类和函数,我在Tools中没有找到。 dependency walker,tools中为depends. 在DllMain 中不需做任何处理也没问题的。你的dll工程中定义了 MYSERIALDLL_EXPORTS 吗? dll工程中的定义:#ifdef MYSERIALDLL_EXPORTS#define MYSERIALDLL_API __declspec(dllexport)#else#define MYSERIALDLL_API __declspec(dllimport)#endif但在dll的cpp源文件中如果加上#define MYSERIALDLL_EXPORTS就总出现宏重复定义的warning,我看的相关文章讲在export类的定义文件中应该加上这个宏,以使用__declspec(dllexport)。不明白。 你的 MYSERIALDLL_API 定义应该加在Project-》setting-》C/C++ -->Preprocessor Define 1。你的接口函数写得对不对:__declspec(dllexport) unsigned long __stdcall Function1(...);__declspec(dllexport) char * __stdcall Function2(...);2。你的目录下少了一个.DEF文件吧? 假设你的Project名为Project,DLL名为dll,则: 你在FileView窗口中,Resource Files下新建一个“Project.def“文件,其内容为: LIBRARY dll EXPORTS Function1 @1 Function2 @2 vs2005 MFC的使用 求救:谁有stdreg32.mdb,帮忙发给我把, 初学者求助改错 提问关于ButtonST按钮图标的问题 菜鸟级问题:IDC_LIST1 的类型为什么没有 CListBox 只有 CString??? 新软件发布,一款社交网络软件(用VC做的),欢迎大家试用并多提宝贵意见,非常感谢! 我装的是双系统 怎么在网页中动态得到Windows文件夹的路径?? 你赞成跨专业考研(计算机)吗?对某些学校抵触跨专业考研的现象你有何高见? 小问题一个 如何根据project文件判断project的类型? 叫root的朋友帮帮忙吧!
#ifdef MYSERIALDLL_EXPORTS
#define MYSERIALDLL_API __declspec(dllexport)
#else
#define MYSERIALDLL_API __declspec(dllimport)
#endifclass MYSERIALDLL_API CMySerialDll
CMySerialDll mySerialDll;
只有这一句话,如果去掉的话,就没有错误!但是也没有调用DLL的export的类啊!
:-((
唯一的可能就是你没有正确 export 类或函数 。如你所说,在你编译DLL,在你dll工程里 里面是否有定义宏 MYSERIALDLL_EXPORTS ?你可以用VC的工具Depences 看看你的dll是否有export出来的类和函数。仔细检查一下吧!
我一直在想是否需要一个初始化函数来生成一个对象实例。
在我的代码中找不到这种函数,我也是看别人的代码,没有找到可能的函数。
#ifdef MYSERIALDLL_EXPORTS
#define MYSERIALDLL_API __declspec(dllexport)
#else
#define MYSERIALDLL_API __declspec(dllimport)
#endif但在dll的cpp源文件中如果加上
#define MYSERIALDLL_EXPORTS
就总出现宏重复定义的warning,我看的相关文章讲在export类的定义文件中应该加上这个宏,以使用__declspec(dllexport)。不明白。
Project-》setting-》C/C++ -->Preprocessor Define
__declspec(dllexport) unsigned long __stdcall Function1(...);
__declspec(dllexport) char * __stdcall Function2(...);2。你的目录下少了一个.DEF文件吧?
假设你的Project名为Project,DLL名为dll,则:
你在FileView窗口中,Resource Files下新建一个“Project.def“文件,其内容为:
LIBRARY dll
EXPORTS
Function1 @1
Function2 @2