易语言真的很坑...我承认。
但是今天还是不得不求助一下了...要用VB开发一个DLL供易语言调用,易语言那边的要求是函数必须 [公开] ,然而在VB里声明了Public Function也无法被调用。我刚刚在网上找到一个C的例子,是这么说的:
__stdcall __declspec(dllexport) int eventPrivateMsg(int subtype, int sendTime, long long fromQQ, char* message, int font)
[这里 stdcall 说明 eventPrivateMsg 的调用调用约定为 stdcall,declspec(dllexport) 起到e语言中 “公开” 的作用]
[一开始因为没有加__stdcall 虽然可以编译通过载入成功,但真运行起来就各种报错……]
万能的V友,求问在VB内是如何声明这种 stdcall 和 declspec(dllexport) ,目前在努力的看MSDN但是并没有找到答案....所以拜托了~
分区可能有误,因为并没有找到VB或者EL的选项。
1
Septembers 2015-05-13 21:55:59 +08:00 via Android
首先声明:我只提供思路,可能存在误导
可以尝试导出COM给易语言用 VB我印象里无法导出 导出函数(你看看导出函数表 |
2
yksoft1 2015-05-13 22:22:02 +08:00
C程序理论上应当通过链接器的.def文件进行导出,__declspec(dllexport) 都只是一个hack
|
3
Athrob 2015-05-13 23:24:19 +08:00
如何在 VB(VS)中声明易语言所谓的公开(stdcall)
这标题... VB后面括号一个VS是什么意思? VB是种语言, VS只是个开发工具. 什么叫易语言所谓的公开, 题主对易语言有偏见吧, 任何语言都有存在的理由. 而且公开后面括起来个stdcall是什么意思?stdcall是一种调用方式, 跟公开/非公开没关系 回正题: 虽然我不知道怎么解决, 但是给你搜索到了相关的资料, 可以参考: http://blog.csdn.net/collin1211/article/details/2803602 没错, 我就是用百度搜索的... |
4
oott123 2015-05-13 23:31:32 +08:00
嗯?酷 Q?
|
5
tao1991123 2015-05-13 23:43:59 +08:00
还好这里不是知乎和OSCHINA 不然你会被喷死的
|
6
rtyurtyu 2015-05-14 00:29:41 +08:00
2015年的今天还有用这种废品语言的人?
vb无法编写一般DLL,只能写COM DLL,所以你就不用想啥自行车了 |
7
freejishu OP @Septembers
@rtyurtyu @yksoft1 应该说vb这方面觉得还是欠缺……虽然同样看到了帖子,MSDN快翻烂了也没找到官方方法,只能试着做了 @tao1991123 _(:з」∠)_谢谢容忍我这种小白…… @oott123 和他的调用程式基本一致 这个话是摘自那里的 顺我还是吧帖子结了吧,目前没找到官方方法,对于其他的抱试试看的态度了 易语言我也不吐槽了,和vb一比都差远了,所以才有这种转换梗 还是谢谢各位了_(:з」∠)_ |
9
yangff 2015-05-14 07:28:34 +08:00 via Android
改编译指令就可以了。。前面说不行的真的用过vb6?
顺便,嫌麻烦用powerbasic咯 |
10
freejishu OP 看了文章说很多都能通过一些冷门方法实现——虽然目前没有一个能实现了的,但是真的。。。(啪
|