编译PTLIB出现错误

从H323 plus下载的,编译PTLIB,按照说明编译,出现这个错误

D:\h323\ptlib\src\ptlib\common\object.cxx(1093) : error C2065: ‘_CrtReportBlockType’ : undeclared identifier
D:\h323\ptlib\src\ptlib\common\object.cxx(1095) : warning C4127: conditional expression is constant

最后把编译模式改成relase模式就不出现这个错误了。

还有一个错误是找不到\ptlib\podbc.cxx文件,搜索下在ptclib目录找到拷贝过来。终于编译通过了,终于获得了ptlib文件

评论

SDK方式下修改LISTBOX字体颜色

在父窗口响应WM_CTLCOLORLISTBOX消息设置字体颜色,在创建一个画刷,返回画刷的句柄就可以了。

case WM_CTLCOLORLISTBOX:
   if((HWND) lParam==hmsglistBox)
   {
     SetTextColor((HDC)wParam,RGB(255,0,0));
       SetBkColor((HDC)wParam,RGB(255,0,255));
     return (LRESULT) CreateSolidBrush(RGB(255,255,255));
   
   }
  
  
  break;

评论

SDK修改状态栏字体大小

SDK方式创建的状态栏,字体比较小,修改字体大小是通过SB_SETTEXT消息,同时指定SBT_OWNERDRAW,则可以处理WM_DRAWITEM消息,重绘

处理WM_DRAWITEM消息
case WM_DRAWITEM:
if(wParam==IDC_STATUS)
{

lpDis=(LPDRAWITEMSTRUCT)lParam;

HFONT hFont;
HFONT hOldFont;
hFont = CreateFont(20,10,0,0,FW_NORMAL,0,0,0,GB2312_CHARSET,0,0,0,0,”宋体”);
if(hFont)
{
hOldFont = (HFONT)SelectObject(lpDis->hDC, hFont);
SetBkMode(lpDis->hDC,TRANSPARENT);//透明背景

TextOut(lpDis->hDC,lpDis->rcItem.left+5,lpDis->rcItem.top+1,(char *)lpDis->itemData,strlen((char *)lpDis->itemData));//输出文字

SelectObject(hdc, hOldFont);
DeleteObject(hFont);
}

}
break;

评论

过年一点感觉都没有

这个年过完了,回到单位,该收心好好工作了。

这次是去重庆待了一个星期,一点感觉都没有,也就和她家亲戚吃吃饭,也听不到什么鞭炮声。家里也不贴对联。好像和平常没什么区别。

评论

WaitForSingleObject

WaitForSingleObject函数:
  DWORD WaitForSingleObject(HANDLE hObject, // 等待的核心对象
  DWORD dwTimeout ) ; // 线程愿意等待的毫秒数(值为INFINITE时表示无限等待)
  返回值:
  返回值 定义 含义
  WAIT_OBJECT_0 0×00000000 对象达到有信号
  WAIT_TIMEOUT 0×00000102 对象没有在dwTimeout毫秒内 到达有信号状态
  WAIT_ABANDONED 0×00000080 对象是一个互斥量,由于它被放弃了而达到有信号状态
  WAIT_FAILED 0xFFFFFFFF 发生错误。调用GetLastError以取得扩展的错误信息
  WaitForMultipleObject函数:
  DWORD WaitForMultipleObject(DWORD cObject, // 检查核心对象的数目
  LPHANDLE lpHandles, // 指向这些对象的句柄的数组
  BOOL bWaitAll, // 是否等待所有对象变成有信号
  DWORD dwTimeout); // 线程愿意等待的时间(毫秒数)
  返回值:
  返回值 定义 含义
  WAIT_OBJECT_0到
  (WAIT_OBJECT_0+cObjects-1) 0×00000000 开始当等待所有对象时,这一值表明等待对象成功的完成了。当等待任一对象
  时,这一值给出 lpHandles数组中属于变成有信号的对象的下标。
  WAIT_TIMEOUT 0×00000102 对象或对象们没有在dwTimeout毫秒内达到有信号状态。
  WAIT_ABANDONED_0到
  (WAIT_ABANDONED_0+cObjects-1)
  开始于0×00000080 当等待所有对象时,这一值指明WAIT_ABANDONED_0等待成功的完成,并且至少有一个对象是互斥量,此互斥量是由于被放弃而达到有信号的。当等待任一对象时,这一值给出lpHandles数组中属于变得有信号的互斥量的句柄的下标,此互斥量由于被放弃而达到有信号。

评论

BCB响应自定义消息实现

//—————————————————————————

#ifndef Unit1H
#define Unit1H
 #define WM_MYMESSAGE WM_USER+1
//—————————————————————————
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//—————————————————————————
class TForm1 : public TForm
{
__published: // IDE-managed Components
        TButton *Button1;
        TMemo *Memo1;
        void __fastcall Button1Click(TObject *Sender);
private: // User declarations
        void __fastcall messageclick(TMessage &msg);
public:  // User declarations
        __fastcall TForm1(TComponent* Owner);
        BEGIN_MESSAGE_MAP
        VCL_MESSAGE_HANDLER(WM_MYMESSAGE, TMessage, messageclick)
        END_MESSAGE_MAP(TForm);

};
//—————————————————————————
extern PACKAGE TForm1 *Form1;
//—————————————————————————
#endif

 

#include <vcl.h>
#pragma hdrstop

#include ”Unit1.h”
//—————————————————————————
#pragma package(smart_init)
#pragma resource ”*.dfm”
TForm1 *Form1;
//—————————————————————————
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//—————————————————————————

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  PostMessage(Form1->Handle,WM_MYMESSAGE,0,0);

}
//—————————————————————————
void __fastcall TForm1::messageclick(TMessage &msg)
{
   Memo1->Lines->Add(”123456789″);
   ShowMessage(”This is a message defined by Kingcaiyao”);
}

评论

VC调用BCB的VCL窗体

VC调用VCL窗体:
DLL工程中:
extern “C” _declspec(dllexport) int WINAPI ShowWindow (void);
int WINAPI ShowWindow(void)
{
TForm1 *form1 = new TForm1(NULL);
form1->ShowModal();
delete form1;
}
VC++中写的调用程序中:
typedef int (WINAPI *SHOWWINDOW)(void);

int main(void)
{
HMODULE hins = LoadLibrary(”Project1.dll”);

if(!hins)
{
cout<<”Load library faile!”< return -1;
}

SHOWWINDOW showWindow = (SHOWWINDOW) GetProcAddress(hins,”ShowWindow”);
(*showWindow)();

FreeLibrary(hins);

return 0;
}

评论

卡巴又误杀了userinit.exe

昨天卡巴却把userinit.exe给杀了,系统进不去,登录后就注销了, 我上网一向比较小心,很少中毒,难道中毒了。找出维护盘,解压出一个userinit.exe文件放到system32目录,启动后卡巴还是报警,看来是卡巴误报。于是把卡巴关了裸奔。今天早上升级卡巴病毒库的时候终于不报警了。

评论

腾讯QQB怎么不给利息啊

今天上QQ发现有个QQ上有2003年的10个QB,现在都5年过去了,怎么腾讯都不给利息?就算是10元钱,5年了也该有1个QB的利息了吧。10个QB是小事,如果是1万个,10万个呢?

还有就是有一个QQ帐号是当年用ADSL漏洞刷的36个QB,qb帐户被腾讯锁定了。现在也没有解锁。

评论

svss软交换试用

国产软交换svss,是一款基于开源asterisk的商业解决方案,提供了SIP和H323两种协议的互转。为了占领市场,培育用户,最近开始执行免费政策。下载后在虚拟机上安装,安装过程停简单的,基本上做到了傻瓜化。管理平台使用的是WEB方式。
首先打开的首页就是一个提示“请把此改为您需要的系统名称”,这就要求用户会试用LINUX找到相关文件,再下载到本地,修改HTML文件,上传到服务器。对用户的要求太高了,其实完全可以在数据库里做个记录,用户直接在管理界面里修改。
用户管理的模式和AVS很像,先建用户然后建设备。但是设备不能限制并发数,这个就有问题了。还有就是对接的平台IP不会显示。
GK的配置修改需要修改配置文件,既然都用WEB方式了,为什么不做个傻瓜化的界面,还要来修改配置文件,很容易修改出错。
另外把H323对接端口改成了2720,非常不习惯。
内部互打,好像只有SIP可以互打,H323不能内部互打。

评论