//调用前加
SetLength(phone_no, 255);
SetLength(sms_message, 255);
//试试看
SetLength(phone_no, 255);
SetLength(sms_message, 255);
//试试看
解决方案 »
- 求一段循环代码,不用Timer控件!
- DELPHI 中的QREPORT报表中能用什么样的条码控件或字体
- 如何在StringGrid的一个单元格中为不同的字符显示不同的颜色,并能隐藏指定的字符串高分!
- 用 Inno Setup 修改注册表使程序随机启动的问题!
- 20分求 ﹕如何列举出dbctrlgrid 里的域对象
- string长度问题
- 哪位有molebox release版本?
- 如何通过ODBC连接Mysql数据库,它的connectstring 是怎样的?
- Delphi7听说出炉!但我认为使用Delphi5就足够了,支持者请留言!!!!!!!!
- delphi中如何创建控件数组
- 各位工作愉快,请问Oracle的BDE连接,打包时须加上哪些文件?
- 如何在delphi中禁用flash中的右键菜单??
Function SHGetSpecialFolderPath(hwndOwner:Integer;pPath:Pchar;nFolder:Integer;bCreat:Boolean):integer;stdcall;external 'Shell32.dll' name 'SHGetSpecialFolderPathA';
phone_no,sms_message:array[0..255] of char;
m_ComNum:integer; if Data(m_ComNum, phone_no, sms_message) = 1 then试试
Com_num: integer; //输入
lpCalledPhone, //函数返回值
lpInfo: pchar //函数返回值
): cadinal; stdcall external 'smi.dll';
如
function Data(
Com_num: integer; //输入
Var lpCalledPhone, //函数返回值
lpInfo: pchar //函数返回值
): integer; cdecl external 'smi.dll';
wo 不太明白你的意思
如:
function Data(
Com_num: integer; //输入
Var lpCalledPhone, //函数返回值
lpInfo: pchar //函数返回值
): integer; cdecl external 'smi.dll';
我以前都是这样调用的,都可以正确地得到返回值的!你能保证你的入参都能得到返回值吗?
Dll中的函数没问题吧?!
还有,你说的无法得到返回值,是指这个函数的返回值(0或者1),还是phone_no,sms_message这两个参数的返回值啊?
这句语句返回的值是什么?True or False?
只要你用到Dll的这个Form即可
[email protected]
Data(m_ComNum, pchar(phone_no), pchar(sms_message)) = 1
的值为多少?
(我明白你说的返回值是什么意思,我问的是你的程序中,调用Data函数后,这个函数的返回值是“1”还是“0”)
2、传出参数需要VAR;
3、别忘记分配内存;GETMEM();FREEMEM();
4、STDCALL
我已经按你的方法作了一遍,但取出的值是入tc?之类的东西。
var
phone_no: pchar;
sms_message: pchar;
begin
GETMEM(phone_no,256);
GETMEM(sms_message,256);
if siReceiveData(m_ComNum, phone_no,sms_message) = 1 then
begin //接收到信息
if (phone_no <> '') and (sms_message <> '') then
begin
EnterCriticalSection(CS);
//rece_sms_pro(phone_no,sms_message );
LeaveCriticalSection(CS);
end;
end;
FREEMEM(phone_no);
FREEMEM(sms_message);
end;
//返回值说明:0,失败;1,成功;
function Data(
Com_num: integer; //输入
lpCalledPhone, //函数返回值
lpInfo: pchar //函数返回值
): integer; stdcall external 'smi.dll'; // agui: 改成stdcall使用:
var phone_no,sms_message: array[0..255] of char; // agui:最好不用string,否则应该用zwang的办法,而且返回后要进行处理
m_ComNum:integer;
if Data(m_ComNum, phone_no, sms_message) = 1 then
我靠,来抢生意?
Data(m_ComNum, phone_no, sms_message) = 1 then