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

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中的THashTable

在Delphi中,Inifiles单元中有一个TStringHash的类,不过它的Value仅支持Integer(其实也不是问题,有其它类型可以将变量变为Pointer),有点不舒服,今天没事做就把它替换为variant了,其中Key的名称大小写无关,就是为了加快开发速度!
使用Hashtable,查找和删除复杂度都是常数级别的!
type
PPHashItem = ^PHashItem;
......

Delphi定时Showmessage事件

在Delphi中,调用Showmessage后,如何使弹出的对话框在一秒钟后自动关闭,而不用手动去点确定
1:用timer控件的函数
procedure TForm1.Timer1Timer(Sender: TObject);
var
AHandle: THandle;
begin
AHandle := FindWindow('TMessageForm',
PChar(Application.Title));
if AHandle > 0 then
SendMessage( ......

Delphi中ADO异步执行方式

     当A D O开始处理数据后,应用程序必须等到A D O处理完毕之后才可以继续执行。但
是除了同步执行方式之外, A D O也提供了异步执行的方式,允许当A D O处理时,
应用程序仍然能够先继续执行。而当A D O处理数据完毕之后, A D O会以事件的方
式通知应用程序,此时应用程序可以再根据A D O执行的 ......

Delphi 7 的一个奇怪的Bug

近来发现一个Delphi莫名其妙的bug,当使用SetOptionalParam时,不能使用一连串数字的字符串,如'101',注意,是带引号的。在SaveToFile时,就会出现'Invalid field type'的异常,真是百思不得其解!连'001'这种串也不行,去掉引号,直接按数字赋值,则正常。
procedure TForm1.Button1Click(Sender: TObject);
var
  ......

Delphi 7使用ADOConnection访问MySQL

今天心血来潮在自己的电脑上安装了mysql-5.1.41-win32和mysql-connector-odbc-5.1.6-win32。以前,我曾经尝试使用DELPHI6去联接MYSQL但是在网上找很多资料都不很好用;今天突然也想起这个问题就干起回来了。
  1. 建立数据库
    use mysql;
    drop database myDB;
    create database ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号