VC中调用Delphi的DLL中的回调函数例子
//Delphi部分
//回调函数定义
type TOnMyCallBack = procedure(data:pchar; id:Integer);stdcall;
//DLL中的导出函数声明
procedure StartCall(param: TOnMyCallBack(data:pchar; id:Integer);stdcall;
begin
...
...
end;
-----------------------------------------------------------------------------------------------------------------------------
//vc调用部分
typedef void (CALLBACK *MY_CallBack)(void *, char *data, int id);
void CALLBACK cxxGetDllData(void *data, int id)
{
CString ss;
ss.Format("%s:%d", data, id);
::MessageBox(NULL, "收到数据:", ss, MB_OK | MB_ICONWARNING);
}
void CTttDlg::OnOK()
{
//动态加载DLL到当前EXE的进程空间
HINSTANCE hDll = LoadLibrary("d:\\temp\\test.dll");
if(!hDll)
{
:MessageBox(NULL, "加载动态链接库失败!", "Notice", MB_OK | MB_ICONWARNING);
return ;
}
MY_CallBack hStartCall = (MY_CallBack) ::GetProcAddress(hDll, "StartCall");
if(!hStartCall)
{
::MessageBox(NULL,"获取StartCall函数地址错误!","Notice",MB_ICONWARNING);
return ;
}
hStartCall(cxxGetDllData,"123456",100);
}
相关文档:
在Delphi中Ado系列控件使用xxxxx.Parameters.Refresh,可以获得存储过程的Return值
以TADOStoredProc为例
ADOStoredProc1.Connection := 'xxxx';
ADOStoredProc1.ProcedureName := 'XXXX';
ADOStoredProc1.Parameters.Refresh; //刷新存储过程的参数列表
//参数赋值
ADO ......
具体要求:
1、计算机及相关专业专科以上学历,有2年以上的工作经验;
2、精通Delphi并有运用Delphi成功开发项目的经验;
3、熟悉网络开发,有控件开发经验者优先考虑;
4、熟悉软件工程,具有良好的开发习惯,能正确使用版本控制工具;
5、具有很强的团队合作和吃苦耐劳的精神,具有一丝不苟的工作作风和认真负责的 ......
Oracle性能优化与Delphi代码
刚学了点oracle方面的知识,感觉以前写代码只凭喜好写,完全没有深究缘由,导致在内行人看来,写的都是垃圾代码,现在就把学到的一些东西写出来,也算是给刚入门的朋友一点帮助吧。
以前,写数据库访问代码,感觉很简单,不就是sql语句嘛,所以什么语句都是这样写:
A:
......
这样一来,Delphi使用Webservice和JAVA通讯时,可以将DELPHI的时间直接传给JAVA。从而免去了时间字符串parse之间的消耗,提高的程序效率。
Delphi时间实质就是double类型,整数部分表示天,小数部分表示当天时间,每毫秒为1/86400000。考虑到时区的转换后,JAVA和DELPHI时间之间的转换类如下:
import java.util.Calendar ......