TC官方合作论坛

 找回密码
 立即注册
查看: 1785|回复: 9

[问题] 自己写的C++ dll调用问题

[复制链接]
发表于 2014-5-8 09:26:05 | 显示全部楼层 |阅读模式
本帖最后由 游民80 于 2014-5-8 09:51 编辑

dll源码:
  1. /* 文件名:MyDll.h */
  2. #ifndef MYDLL_H
  3. #define MYDLL_H
  4. extern "C" int __declspec(dllexport)add(int x, int y); //声明函数add为DLL的导出函数
  5. #endif
复制代码
  1. /* 文件名:MyDll.cpp */
  2. #include "MyDll.h"
  3. int add(int x, int y)
  4. {
  5.         return x + y;
  6. }
复制代码

功能 开始_点击()
    int i = dllcall(help.getrcpath("rc:TestDll.dll"),"int","add","int",10,"int",20)
    help.messagebox(i)
功能结束


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

发表于 2014-5-8 09:36:09 | 显示全部楼层
dll 放资源目录下了吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 09:46:47 | 显示全部楼层
本帖最后由 游民80 于 2014-5-8 09:53 编辑

dll已经放到资源目录下了,如果调用的是messagebox,会先正常弹出来,确定后才出问题.
TestDll.dll文件已经放到一楼了,调用SomeFunction函数会弹出一个消息框:函数定义:
  1. extern "C" int __declspec(dllexport) add(int x, int y); //声明函数add为DLL的导出函数
  2. extern "C" void __declspec(dllexport) SomeFunction(c**t LPCSTR sometext);
复制代码



回复 支持 反对

使用道具 举报

发表于 2014-5-8 10:03:55 | 显示全部楼层
好像不能返回Int类型,你试试返回string????
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 10:12:22 | 显示全部楼层
xqxujun 发表于 2014-5-8 10:03
好像不能返回Int类型,你试试返回string????

可以的,有个例子就是add函数,返回的int类型.
dll里面还有个函数是无返回值的,只弹一个msgbox窗口.
调用dll后,能弹出窗口,但是确定后,一样会出错.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 10:58:30 | 显示全部楼层
我顶,在线等啊.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 14:43:05 | 显示全部楼层
坐等高手解决啊,很急啊.学习中ing.
回复 支持 反对

使用道具 举报

发表于 2014-5-13 02:36:36 | 显示全部楼层
本帖最后由 dabaowl 于 2014-5-13 02:47 编辑

我是一菜鸟,我看你的应该是dll的调用约定写错了,调用约定你用stdcall试下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-13 11:32:07 | 显示全部楼层
dabaowl 发表于 2014-5-13 02:36
我是一菜鸟,我看你的应该是dll的调用约定写错了,调用约定你用stdcall试下

改过试了.不行.
自己写的C++程序动态调用dll是可以正常调用.
回复 支持 反对

使用道具 举报

发表于 2014-5-14 04:15:24 | 显示全部楼层
c++的一堆E文忒恶心,正在用e慢慢学dll的写法,感觉E的还容易些
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-28 15:44 , Processed in 0.043197 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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