易截截图软件、单文件、免安装、纯绿色、仅160KB

VC的DLL如果通过参数向VB传数据? - VB / 基础类

我这样写的.
VC DLL部分
size_t *Ep2ReadLen;
extern "C" int _stdcall TestDLL(size_t* iPort2ReadLen)
{
Ep2ReadLen = iPort2ReadLen;
*Ep2ReadLen = 5; //这里
if (Ep2ReadLen)
{
free(Ep2ReadLen);
//Ep2ReadLen=NULL;
}

return 0;
}

VB部分
Declare Function TestDLL Lib "XXX.dll" (ByRef iPort2ReadLen As Integer) As Integer
Dim iPort2ReadLen As Integer
rt = TestDLL(iPort2ReadLen)

编译通过,运行VB程序,调用,能正确返回5。但是在关闭VB程序时,报错。
但在上面的 *Ep2ReadLen = 5; 注释掉后,就不报错了。说明是这行导致的。
我曾考虑是不是VC指针没有释放,所以加上 free(Ep2ReadLen);
但结果仍然一样。
请教各位,错在哪里?


、、、、、、、、、、、、、、、、、

free(Ep2ReadLen);的添加不是我的本意,最先是没有加这行的,但最终关闭VB程序报错后,我增加了这行,结果相同。
我原以为是没有释放指针,导致的报错,但现在看好像又不是 :(

VB好像没有指针?

、、、、、、、、、、、、、、、、、

VB中
我又试了一下

测试一:

Dim iPort2ReadLen As Integer
Private Sub Command1_Click()  
  iPort2ReadLen = 34
  rt = TestDLL(iPort2ReadLen)
  MsgBox iPort2ReadLen
End Sub

iPort2ReadLen 作为全局变量,关闭VB窗体时“报错”。


测试二:

Private Sub Command1_Click()  
  Dim iPort2ReadLen As Integer
 


相关问答:

vb读取xml - VB / 基础类

现在有个xml文件是<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xm ......

vb生成EXE - VB / 基础类

form1中有text1-8, 和command1 
text8中为程序代码(生成窗体为form2(已做好))
单击command1后将text2中的代码生成EXE到d:\ 并且text1-7分别对应
产品名 公司名 合法版权 合法商标 文件描述 注释 标题 ......

vb WebBrowser 小问题,请教 - VB / 基础类

vb WebBrowser 小问题,请教:
WebBrowser里的网址跳转后,怎么取得跳转后的页面的URL地址

顶下顶下

引用
BeforeNavigate2
好像没有这个吧 vb6.0

BeforeNavigate2
这个可以有,呵呵。
......

vb activex 传递参数 - VB / COM/DCOM/COM+

我用VB写了一个activex,现在想在js里面向activex传值,写了一个public方法不行,写了一个属性也不行,请高手指点,在线等候,代码如下
变量声明
Dim dirName As String = ""
方法
Public Sub UrlName( ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号