51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4272|回复: 4
打印 上一主题 下一主题

[原创] 有关lr_load_dll的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-5-26 10:50:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用C语言录制的脚本,现有VC++写的dll,用lr_load_dll调用时出错,请各位帮忙看看
DecodeString.dll的源码:

DecodeString.h
#ifdef DECODESTRING_EXPORTS
#define DECODESTRING_API __declspec(dllexport)
#else
#define DECODESTRING_API __declspec(dllimport)
#endif

// This class is exported from the DecodeString.dll
class DECODESTRING_API CDecodeString {
public:
        CDecodeString(void);
        // TODO: add your methods here.
};

extern "C" DECODESTRING_API int nDecodeString;

DECODESTRING_API int fnDecodeString(void);
-----------------------------------------------------------------------

DecodeString.cpp:
#include "stdafx.h"
#include "DecodeString.h"

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                                         )
{
    switch (ul_reason_for_call)
        {
                case DLL_PROCESS_ATTACH:
                case DLL_THREAD_ATTACH:
                case DLL_THREAD_DETACH:
                case DLL_PROCESS_DETACH:
                        break;
    }
    return TRUE;
}


// This is an example of an exported variable
DECODESTRING_API int nDecodeString=0;

// This is an example of an exported function.
DECODESTRING_API int fnDecodeString(void)
{
        return 42;
}

//Max function
DECODESTRING_API int Max(int a, int b)
{
if(a>=b)return a;
else
return b;
}

//Min function
DECODESTRING_API int Min(int a, int b)
{
if(a>=b)return b;
else
return a;
}

// This is the constructor of a class that has been exported.
// see DecodeString.h for the class definition
CDecodeString::CDecodeString()
{
        return;
}

/////////////在action中调用的代码为:
lr_load_dll(str);
    c=fnDecodeString();-------Error -- Unresolved symbol : fnDecodeString.

不知道是为什么?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2005-5-26 11:47:12 | 只看该作者
1。lr_load-dll中参数是动态链接库的名字和全路径
2。你在C的功能里面的*.def文件中必须要定义你的函数说明

我做过测试,你如果在.def中部进行定义你的函数名,他将会报你所说的错误
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-5-26 14:14:26 | 只看该作者
谢谢kernzhang,问题已经解决
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-9-23 12:37:01 | 只看该作者
lr_load_dll参数不定义动态连接库的全路径,直接放在脚本路径下,是否可以?定义路径为什么输入“\”会变为人民币的符号啊
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-9-23 13:53:27 | 只看该作者
路过

学习啦
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-19 00:45 , Processed in 0.061554 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表