2)第二种方法:
//获得窗体指针:
CMainFrame *pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
file://获得与该窗体符合的视图:
CYourView *m_pView = (CYourView *) pFrame->GetActiveView();
file://调用视图函数:
m_pView->Put();
问题四:如何使程序在启动时不创建一个新文档?
在程序的InitInstance中的ProcessShellCommand函数之前加入:
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing
问题五:如何在MDI程序中得到所有的视图?
必须用一些文档中没有记载的函数:
CDocument::GetFirstViewPosition(); // DOCCORE.CPP
CDocument::GetNextView(); // DOCCORE.CPP
CMultiDocTemplate::GetFirstDocPosition(); // DOCMULTI.CPP
CMultiDocTemplate::GetNextDoc(); // DOCMULTI.CPP
同时还需要与CWinApp的成员m_templateList打交道。
问题六: ADO中如何得到某个数据库中的所有表的数目?
HRESULT hr = S_OK;
_ConnectionPtr pConnection = NULL;
_CatalogPtr pCatalog = NULL;
_bstr_t strCnn("Provider=sqloledb;Data Source=MyServer;"
"Initial Catalog=pubs;User Id=sa;Password=;");
try
{
file://Define a command object for a stored procedure.
pConnection.CreateInstance(__uuidof(Connection));
hr = pCatalog.CreateInstance(__uuidof (Catalog));
hr = pConnection->Open(strCnn,"","",adConnectUnspecified);
pCatalog->PutActiveConnection(_variant_t((IDispatch *) pConnection));
long nTBCount = pCatalog->Tables->Count;//这就是你想要的表的数目
pConnection->Close();
pConnection = NULL;
}
catch(_com_error &e)
{
....
}
问题七:从应用角度讲阻塞与非阻塞SOCKET有什么区别?
从系统性能上看,用非阻塞的socket效率和性能更高,但是编程更复杂,特别是当你使用事件或者消息的时候,但是,你可以通过4个工作线程管理100多个socket连接,效率非常高,不需要每个工作线程只管理一个socket连接。 用阻塞的方式比较简单,但当较多客户端时消耗系统资源太多。
所谓用4个线程管理100多socket,不过是这样一种构思:建立一个线程池,当有socket的事件需要处理时,从线程池中取一个线程来执行,执行完,将线程归还到线程池中。 这样的做法在如下的条件下会工作的更好:
(1)每个socket连接的时间较长,不断的与服务器交互。
(2)每个连接的socket并不是每时每刻都在收发数据 具体的实现方式:(我是在windows环境下实现的,linux上现在正在研究) 可以使用OVERLAPED IO,或者完成端口(CompeleteIO)
问题八:怎样设置栈的大小?
方法一:STACKSIZE 定义.def文件
语法:STACKSIZE reserve[,commit]
reserve:栈的大小;commit:可选项,与操作系统有关,在NT上只一次分配物理内存的大小
方法二:设定/STACK
打开工程,依次操作菜单如下:Project->Setting->Link,在Category 中选中Output,然后在Reserve中设定堆栈的最大值和commit。
注意:reserve默认值为1MB,最小值为4Byte;commit是保留在虚拟内存的页文件里面,它设置的较
大会使栈开辟较大的值,可能增加内存的开销和启动时间
问题九:如何获取本机上正在使用的UDP端口?
可以通过端口扫描技术实现。
端口扫描技术(port scanning)
端口扫描就是通过连接到目标系统的TCP或UDP端口,来确定什么服务正在运行。一般来说端口扫描有三个用途:
* 识别目标系统上正在运行的TCP和UDP服务。
* 识别目标系统的操作系统类型(Windows 9x, Windows NT,或UNIX,等)。
* 识别某个应用程序或某个特定服务的版本号。
| 共3页: 上一页 [1] 2 [3] 下一页 | ||
|