求 调用 DLL 来进行字符串处理 程序

馋嘴蜗牛 2002-02-10 07:58:45
谁能帮我写一个小的 DLL 程序,要求传入一个字符串,再传出处理后的字符串,想用 DLL 实现,我弄了好多次,总是有错误,其主要用途是进行字符串的加密和解密,为了练习 DLL,所以才这样做的:)
字符串以什么形式传入传出没有要求,只要能实现就行了。
...全文
75 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
馋嘴蜗牛 2002-02-11
  • 打赏
  • 举报
回复
不过我把我的程序也编译成 Release 版的就没有问题了,呵呵,真是—
wb197 2002-02-11
  • 打赏
  • 举报
回复
sorry, 应该是
Library "你的dll文件名"
Exports
Encrypt
馋嘴蜗牛 2002-02-11
  • 打赏
  • 举报
回复
搞定了,原来是因为我原来建立的是常规的 DLL,我改成扩展 MFC 的就行了,不过还有一个问题,我编译成 Release 版的时候,在关闭程序时会出错,而 Debug 版就没事儿,这是为什么,是不是要改什么参数呀
wb197 2002-02-11
  • 打赏
  • 举报
回复
Encrypt看看取到地址没有?应该没取到,dll中定义为
__declspec( dllexport ) CString Encrypt
如果还取不到,在你的dll工程加encrypt.def文件
并定义
Export
Encrypt

如果Encrypt指针取到了则不用进行上述更改
馋嘴蜗牛 2002-02-11
  • 打赏
  • 举报
回复
Encrypt 当然取到地址了,函数都运行正确了,结果都是正确的,我用的动态调入,不用 def 文件的,问题在于最后一个大括号,可能是什么析构的时候出错了。
馋嘴蜗牛 2002-02-10
  • 打赏
  • 举报
回复
没有,我是用动态调入,错误嘛,好象是什么禁止吧,就是访问到不该访问的内存了吧
mn_th 2002-02-10
  • 打赏
  • 举报
回复
你include dll的头文件没,错误信息是什么
webber84 2002-02-10
  • 打赏
  • 举报
回复
什么错?
mn_th 2002-02-10
  • 打赏
  • 举报
回复
你include 那个dll的头文件吗,错误是什么
馋嘴蜗牛 2002-02-10
  • 打赏
  • 举报
回复
DLL 中的函数:

CString Encrypt(CString const pszString)
{
CString pszCrypt;
pszCrypt = pszString;
for (int ii = 0; ii < pszString.GetLength(); ii++)
{
unsigned int uChar = (unsigned int) pszString[ii];
char szByte[32] = "";
sprintf(szByte, "%02x", (uChar ^ 101) & 0xff);
pszCrypt += szByte;
}
return (pszString);
}


调用:

{
CString strName, strResult;
typedef CString StringFunc(CString const strString);

HINSTANCE hDLL;
EncryptFunc *Encrypt;
hDLL = LoadLibrary("Encrypt");
if (hDLL != NULL)
{
Encrypt= (StringFunc *)GetProcAddress(hDLL, "Encrypt");
strName = "Songbai";
strResult = Encrypt(strName);
AfxMessageBox(strResult);
FreeLibrary(hDLL);
}
}

在调用时,我先 CString strString = "Songbai",然后我 Encrypt(strString)
返回的值都是对的,AfxMessageBox 可以出现,FreeLibrary 也过了,就是在最后一个大括号时出错。
呵呵,前几天问过,后来就算了,今天又想再问问
yg_xh 2002-02-10
  • 打赏
  • 举报
回复
不会吧,DLL加载后调用字符串处理函数应该没什么问题吧,唯一可能出问题的是在内存,要是你搞不清楚,可以这样定义函数:int func(char *buffer,char* tag);你在主程序传给它一个缓冲区
webber84 2002-02-10
  • 打赏
  • 举报
回复
你把你的代码贴出来,看看有什么错。
webber84 2002-02-10
  • 打赏
  • 举报
回复
你把你的代码贴出来,看看有什么错。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧