如何在 VB(VS)中声明易语言所谓的公开(stdcall)

2015-05-13 20:48:09 +08:00
 freejishu

易语言真的很坑...我承认。
但是今天还是不得不求助一下了...要用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的选项。

1180 次点击
所在节点    C
10 条回复
Septembers
2015-05-13 21:55:59 +08:00
首先声明:我只提供思路,可能存在误导

可以尝试导出COM给易语言用

VB我印象里无法导出 导出函数(你看看导出函数表
yksoft1
2015-05-13 22:22:02 +08:00
C程序理论上应当通过链接器的.def文件进行导出,__declspec(dllexport) 都只是一个hack
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
没错, 我就是用百度搜索的...
oott123
2015-05-13 23:31:32 +08:00
嗯?酷 Q?
tao1991123
2015-05-13 23:43:59 +08:00
还好这里不是知乎和OSCHINA 不然你会被喷死的
rtyurtyu
2015-05-14 00:29:41 +08:00
2015年的今天还有用这种废品语言的人?

vb无法编写一般DLL,只能写COM DLL,所以你就不用想啥自行车了
freejishu
2015-05-14 00:36:57 +08:00
@Septembers
@rtyurtyu
@yksoft1 应该说vb这方面觉得还是欠缺……虽然同样看到了帖子,MSDN快翻烂了也没找到官方方法,只能试着做了

@tao1991123 _(:з」∠)_谢谢容忍我这种小白……


@oott123 和他的调用程式基本一致 这个话是摘自那里的

顺我还是吧帖子结了吧,目前没找到官方方法,对于其他的抱试试看的态度了
易语言我也不吐槽了,和vb一比都差远了,所以才有这种转换梗

还是谢谢各位了_(:з」∠)_
hx1997
2015-05-14 07:01:17 +08:00
VB.NET 还是 VB6?VB6 的话是有办法的,VB.NET 不清楚。
yangff
2015-05-14 07:28:34 +08:00
改编译指令就可以了。。前面说不行的真的用过vb6?
顺便,嫌麻烦用powerbasic咯
freejishu
2015-05-22 18:38:33 +08:00
看了文章说很多都能通过一些冷门方法实现——虽然目前没有一个能实现了的,但是真的。。。(啪

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/190861

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX