TC官方合作论坛

 找回密码
 立即注册
查看: 4916|回复: 73
打印 上一主题 下一主题

[讨论] dllcall 调用powerbasic写的dll例子

  [复制链接]
跳转到指定楼层
楼主
发表于 2013-7-15 17:53:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
本帖最后由 venski 于 2015-5-19 00:02 编辑

通过powerbasic写自己要用的功能.

#COMPILE DLL "tcdll.dll" '表示编译成DLL文件,后面的DLL名称自己定义.
#DIM ALL '声明所有
%USEMACROS = 1
#INCLUDE "Win32API.inc"      'Win32API函数库,只要这样用了大部分的API都可以直接用
GLOBAL ghInstance AS DWORD '这句测试这里可以注释掉
'声明函数时,用ALIAS别名和EXPORT导出关键字,字符串由于TC传的是指针,所以,你应该用Copymemory,具体介绍,请百度
FUNCTION testfun ALIAS "testfun" (BYREF ReceiveStr AS string)EXPORT AS STRING
    '内部字符串,也是计算后的返回结果
    DIM PrivateStr AS STRING
    '(接受)传入字符串的指针变量
    DIM ReceiveStrPtr AS LONG
    ReceiveStrPtr=VARPTR(ReceiveStr)
    '使用CopyMemory Api 将传入字符串按指针复制一份
    DIM CopyReceive AS STRING
    CopyReceive$ = SPACE$(512)  '大小随你自己意愿修改吧
    CopyMemory(BYVAL STRPTR(CopyReceive),BYVAL ReceiveStrPtr,512)
    'strReceive = str$(strReceive)
    '这儿测试:内部字符串与得到的字符串相加结果是否正常.后期字符串长度截取,自己处理吧,查找$NUL截止即可
    MSGBOX CopyReceive
    PrivateStr="内部字符串测试---" & CopyReceive
    '函数输出
    testfun=PrivateStr
END FUNCTION
'我这里测试,就不理会libmain和dllmain,因为我用不到,这只是测试
'你在TC调用方法如下

我的结果=dllcall("tcdll.dll","char *","testfun","char *","外部传入字符串计算测试!")
//你会看到结果应该是: 内部字符串测试---外部传入字符串计算测试!

这是一个例子而已,具体要实现什么,自己动手,丰衣足食!
回复

使用道具 举报

沙发
发表于 2013-7-15 18:44:54 | 只看该作者
亲 你的dll是用什么写的
回复 支持 反对

使用道具 举报

板凳
发表于 2013-7-15 21:30:27 | 只看该作者
  尼玛 三天三夜没睡觉  叫你发个成品dll的时间都没有,
回复 支持 反对

使用道具 举报

地板
发表于 2013-7-15 22:26:08 | 只看该作者
用传址的方式  byret
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2013-7-23 11:52:13 | 只看该作者
回复 4楼kevinqq的帖子


用powerbasic写 可以!,VB6不行,我再想办法!
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2013-7-29 20:40:13 | 只看该作者
例子已更新
回复 支持 反对

使用道具 举报

7#
发表于 2013-8-2 19:36:01 | 只看该作者
..............
回复 支持 反对

使用道具 举报

8#
发表于 2013-8-8 09:41:38 | 只看该作者
看看
回复 支持 反对

使用道具 举报

9#
发表于 2013-9-2 00:35:55 | 只看该作者
嗯哼
回复 支持 反对

使用道具 举报

10#
发表于 2013-9-2 20:07:42 | 只看该作者
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-23 02:52 , Processed in 0.157756 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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