c的定义:
int _stdcall changevalue(int a,int b)
{
b=b+1;
return 0;
}
已经编译成dll
vb中的定义Dim i As Integer
Dim j As Integer
i = 0
j = 0
changevalue i, j
Text1.Text = j请问为什么j的值还是0?怎么让其变成1?
int _stdcall changevalue(int a,int b)
{
b=b+1;
return 0;
}
已经编译成dll
vb中的定义Dim i As Integer
Dim j As Integer
i = 0
j = 0
changevalue i, j
Text1.Text = j请问为什么j的值还是0?怎么让其变成1?
解决方案 »
- ACReport中国式报表控件2010版(含文档和demo)
- 9876543210怎么转换成16进制啊?
- 一个奇怪的现象,MS的产品怎么很少看到VB做的呢?
- 如何实现DataGrid拖动滚动条时内容也实时滚动?100分
- 当对form1中关闭按纽触发单击事件时,显示"不能关闭"信息!
- 讓VSFlexGrid的一行變成紅色,語句怎麽寫呀?怎樣限定輸入文本框的字符個數?
- 跪求VB作POS系统 怎么对scanner编程
- com控件开发
- datagrid 显示复选对勾 高手帮助!!!!!
- 我有一个问题:在VB6中,打开.db数据库后,如何增加或修改表名、字段名。
- 怎样自动隐藏弹出菜单
- 新手上路:关于MSFlexGrid控件显示数据的问题?急!急!急!
C中关于传参数的情况有区别吧,好像分按值传和按地址传吧
楼主C中的函数是不是按值传递的,所以原来的变量本身并不发生变化。
你的方法可行,但我目前的情况是在dll里面有一个入口函数,是定义为int的,传入若干参数后,它对某个数组重新编码了一下,然后return。
以前是用c调用该dll的,数组确实变了,但现在vb下调用,发现参数是传进去了,但由于函数return的是数值,所以数组并没有变化。
我搞不明白原因啊
反正vb中你是变不了了改称;change(byref a,byref b)就行了C++中也用地质传旨的八
int _stdcall changevalue(int *a,int *b)
{
b=b+1;
return 0;
}应该这样定义,定义为按地址传递,这样对变量的改变就反应出来了,也就达到阁下的要求了孤夜寒心泪