天行健,君子以自强不息
分类: C/C++
2011-12-28 15:16:39
(1)新建一个win32的共享MFC类型的dll。
在定义dll中的函数的时候,在函数前面加上_declspec(dllexport)
例如:_declspec(dllexport) int my_add(int a,int b)
{
//函数功能实体
}
工程设置如下:
属性-----配置属性--------常规---项目默认值------MFC的使用------在共享的DLL中使用MFC.
在release模式下编译。发现会生成:一个lib文件和一个dll文件
假设生成的两个文件的名称是:dll3.dll,dll3.lib
(2)建立一个应用程序
将lib文件和dll文件拷贝到当前工程下。
那么在新的应用程序cpp或者h文件中添加:
#pragma comment(lib,"dll3.lib")
extern int my_add2(int a,int b);
然后就可以直接调用dll文件中定义的my_add函数了。
截图演示如下:
2、Vc读写注册表
(1)、写注册表
方法一:
HKEY hkey;
RegCreateKey(HKEY_LOCAL_MACHINE,_T("Software\\\\admin"),&hkey);
RegSetValue(hkey,NULL,REG_SZ,_T("lz"),strlen("lz"));//_T("zhangsan")
RegCloseKey(hkey);
方法二:
bool writeReg()
{
HKEY hKey;
unsigned char sz[10];
memcpy((char*)sz,"800",3);
DWORD dwtype=REG_SZ;
DWORD sl=10;
LONG result=RegOpenKey(HKEY_LOCAL_MACHINE,_T("software\\company\\"),&hKey);
result=RegSetValueEx(hKey,_T("numxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"),NULL,dwtype,sz,sl);
RegCloseKey(hKey);
return true;
}
3、浏览文件夹
CString strFileName,strFilePath;
CString m_szDir = _T("c:\\");//浏览文件的默认路径
TCHAR szFilter[] =_T("txt File(*.txt)|*.txt; *.txt|All Files (*.*)|*.*||"); //浏览的文件类型
CFileDialog OpenDlg(false, NULL, NULL, /*OFN_ALLOWMULTISELECT |*/ OFN_EXPLORER, (szFilter));
OpenDlg.m_ofn.lStructSize = sizeof(OpenDlg.m_ofn);
OpenDlg.m_ofn.hwndOwner = NULL;
OpenDlg.m_ofn.lpstrTitle =_T("打开文件");
OpenDlg.m_ofn.lpstrInitialDir = m_szDir; //初始目录
if( OpenDlg.DoModal() == IDOK)
{
// strFilePath = OpenDlg.GetFilePath(); //路径:VC6.0下报错,没有GetFilePath()成员
strFileName = OpenDlg.GetFileName(); //文件名
m_edit2=strFileName;//将所选择的文件的文件名在文本编辑框中显示出来
}
UpdateData(FALSE);
可以将上面的代码放在一个按钮的消息响应函数中,点击一下按钮,就默认打开c盘,浏览c盘中的txt文件。