2012年11月29日, 上午11:03
现在的win7非常流行,但有时候win7开发软件,需要注册某个com控件,可以使用两种方式
第一种是,直接打开运行,在运行里面输入regsvr32 xxx.dll,再点运行,这种在xp下是可行的,但在win7下需要使用管理员权限,不然始终提示注册失败,模块”xxx.dll”加载失败,请确保该二进制存储在指定的路径中,或者调试它以检查该二进制或相关的.DLL文件是否有问题。找不到指定的程序。
第二种是,打开cmd控制台,输入regsvr32 xxx.dll按回车运行,这种在xp下也是可行,但在win7下需要管理员权限。解决方式是搜索cmd右键使用管理员权限运行,然后再使用regsvr32 xxx.dll命令。
有时候动态库的路径带有空格的文件夹名,比如C:\Program Files目录下的dll文件,那么需要使用双引号将文件路径包含起来,如regsvr32 “C:\Program Files\xxx.dll”
Category:
电脑操作 |
win7注册com控件失败的问题已关闭评论
2012年11月27日, 下午3:31
stl中的list,map与vector调用erase删除元素有些区别,都可以使用itor = listInt.erase(itor);的试,但vecotr不能使用listInt.erase(itor++);
[php]
//list方式
std::list<int> listInt;
for (int i = 0; i < 10; i++)
{
listInt.push_back(i);
}
std::list<int>::iterator itor = listInt.begin();
while (itor != listInt.end())
{
int a = (*itor);
if (a%2 == 0)
{
itor = listInt.erase(itor); //此处是将erase返回的指针传给itor
continue;
}
itor++;
}
[/php]
Continue reading ‘stl中的list,map,vector等的erase循环遍历删除元素’ »
Category:
C++ |
stl中的list,map,vector等的erase循环遍历删除元素已关闭评论
2012年11月24日, 下午3:25
有时候需要实现中文切换,自动根据当前语言环境显示不同界面,windows的API中有获取语言环境的函数GetSystemDefaultLangID
[php]
#include
#pragma comment(lib,"Kernel32.lib")
LANGID lid = GetSystemDefaultLangID();
switch (lid)
{
case 0X0804:
/MessageBox(_T("Chiese"));
break;
case 0x0409:
//MessageBox(_T("English"));
break;
}
[/php]
下面是各语言的对照表
Continue reading ‘获取当前windows操作系统语言环境’ »
Category:
C++ |
获取当前windows操作系统语言环境已关闭评论
2012年11月22日, 上午9:13
Eclipse打包比较人性化,也比较简单,但对于JCreator打包网上说得比较少,而且也比较麻烦,下面就介绍下关于JCreator打包的步骤:
实际上JCreator打包还是用到了命令,只不过要手动更改。
一、打开菜单栏“Configure”,选择“Options”。
二、单击“Tools”,可以看到右边有个“New”按钮,单击这个按钮选择“Create Jar File”。
三、这时在“Tools”下面会自动生成“Create Jar File”项,单击这个项,右边会出关于这个项的设置,其它的默认不变,只需要更改“Arguments”为cvfm $[PrjName].jar MANIFEST.MF *,记住这里是cvfm,这里的m表示想定义自己的MANIFEST.MF文件,这个文件放在对应的工程目录下面,也就是默认生成JAR的目录。
Category:
Java |
JCreator打包jar已关闭评论
2012年11月17日, 上午10:48
有时候图片超出预想大小,需要将其大小改变,所有图片显示大小一致,可以使用以下方式,新建一个名为test.htm的文件,然后在里面写入以下代码:
[php]
<script language="JavaScript">
<!–//图片按比例缩放
var flag=false;
function DrawImage(ImgD){
var image=new Image();
var iwidth = 220; //定义允许图片宽度
var iheight = 200; //定义允许图片高度
image.src=ImgD.src;
if(image.width>0 && image.height>0) {
flag=true;
if(image.width/image.height>= iwidth/iheight) {
if(image.width>iwidth)
{
ImgD.width=iwidth;
ImgD.height=(image.height*iwidth)/image.width;
}
else {
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"×"+image.height;
}
else {
if(image.height>iheight) {
ImgD.height=iheight;ImgD.width=(image.width*iheight)/image.height;
}
else {
ImgD.width=image.width;ImgD.height=image.height;
}
ImgD.alt=image.width+"×"+image.height;
}
}
}
</script>
<!– 此处是显示缩放后的图片–>
<img src="uploads/test.jpg>" onload="javascript:DrawImage(this);" >
[/php]
Category:
建站 |
网页中控制图片按比例缩放显示已关闭评论
2012年11月14日, 下午6:51
在使用CFileDialog类打开文件中,若要同时选择多个文件,需要设置OFN_ALLOWMULTISELECT属性,如下代码所示:
[php]
CFileDialog fileDlg(true, NULL, NULL, OFN_ALLOWMULTISELECT);
fileDlg.m_ofn.lpstrFilter = _T("ZV File(*.zv)\0 *.zv\0MPG File(*.mpg)\0 *.mpg\0MPEG4 File(*.mpeg4)\0 *.mpeg4\0H264 File(*.264)\0 *.264\0All File(*.*)\0 *.*\0");
if (IDOK == fileDlg.DoModal())
{
POSITION pos = fileDlg.GetStartPosition();
while(pos)
{
CString strPathName = fileDlg.GetNextPathName(pos);
AfxMessageBox(strPathName);
}
}
[/php]
Continue reading ‘CFileDialog选择多文件出错返回FNERR_BUFFERTOOSMALL’ »
Category:
C++ |
CFileDialog选择多文件出错返回FNERR_BUFFERTOOSMALL已关闭评论
2012年11月12日, 下午2:01
在MFC中,若要打开文件目录选择对话框,需要使用BROWSEINFO结构体,具体代码如下:
[php]
void CBatchConvert::OnBrowseOutDir()
{
// TODO: 在此添加控件通知处理程序代码
char szPath[MAX_PATH]; //存放选择的目录路径
memset(szPath, 0, sizeof(szPath));
BROWSEINFO bi;
bi.hwndOwner = m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = (LPWSTR)szPath;
bi.lpszTitle = _T("请选择转换后的文件输出目录:");
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
//弹出选择目录对话框
LPITEMIDLIST lp = SHBrowseForFolder(&bi);
if(lp && SHGetPathFromIDList(lp, (LPWSTR)szPath))
{
CString strOutDir;
strOutDir.Format(_T("%s"), szPath);
AfxMessageBox(strOutDir);
}
}
[/php]
Continue reading ‘MFC打开选择文件目录对话框且显示新建文件夹按钮’ »
Category:
C++ |
MFC打开选择文件目录对话框且显示新建文件夹按钮已关闭评论
2012年11月10日, 上午11:21
MFC的ClistCtrl控件添加了多行数据后,若要删除选中的多行数据,可以使用ClistCtrl的成员函数,在网上找了很多例子,发现都有问题,因为在删除ClistCtrl行的时候,删除行下面的行会上移,那么下一个要删除的行的索引会改变,导致删除的是删除行下两行位置的数据,删除不完全。
使用下面代码可完全删除选中行:
[php]
void CBatchConvert::OnDeleteFile()
{
// TODO: 在此添加命令处理程序代码
POSITION pos = m_ctrlBatchFile.GetFirstSelectedItemPosition();
while(pos)
{
int nIndex = m_ctrlBatchFile.GetNextSelectedItem(pos);
m_ctrlBatchFile.DeleteItem(nIndex);
pos = m_ctrlBatchFile.GetFirstSelectedItemPosition(); //这步很重要,不然删除不完全
}
}
[/php]
Category:
C++ |
MFC的ClistCtrl删除选中多行项目已关闭评论
2012年11月8日, 下午5:42
在MFC中,如果想要给Tab Control的某一个属性页添加右键菜单,那么首先要在资源里添加菜单内容,并给菜单内容设置事件处理。
然后在属性页的类中添加右键事件
Continue reading ‘MFC的Tab Control属性页中添加右键菜单事件’ »
Category:
C++ |
MFC的Tab Control属性页中添加右键菜单事件已关闭评论
2012年11月7日, 上午8:39
windows有很多服务,可以将程序设置为自动启动,例如安装MySql等程序,会在服务里看到Mysql的服务,可以设置为手动启动,或自动启动以及禁用。
若想删除某一服务的话,可以采用以下几种方式:
办法一:
用sc.exe这个Windows命令 开始——运行——cmd.exe,然后输入sc就可以看到了。使用办法很简单: sc delete “服务名”(如果服务名中间有空格,就需要前后加引号) 如针对上面的: sc delete KSD2Service .
方法二:
直接进行注册表编辑(不推荐) 打开注册表编辑器,找到下面的键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可。
方法三:
特殊情况 1、如果服务显示的是rundll32.exe,并且这个文件是位于system32目录下,那么就不能删除这个rundll32.exe文件,它是Windows系统的文件。这时只要清除相关的服务就可以了 2、如果一个服务删除了马上又自动建立了,说明后台有进程在监视、保护。需要先在进程管理器中杀掉相应的进程,或者启动后按F8,到安全模式下删除。
方法四:
其它参考用ICEWORD等第三方工具删除。
Category:
电脑操作 |
如何删除windows服务已关闭评论