- 浏览: 192594 次
- 性别:
最新评论
文章列表
以下的代码在EXE中,执行无误。可是在DLL中FindResource返回的值就为0了,我用::GetLastError(),得出的值是1813,也就是取不到资源,这是为什么?
BOOL ExtractFile(char *szZlibFile,DWORD dwRID)
{
HANDLE hFile = NULL ;
HRSRC hRsrc = NULL ;
HGLOBAL hGlobal = NULL ;
DWORD dwResSize = 0, dwBytesWrite = 0, dwBytesRead = 0;
PVOID pRsrc = NULL, pConf ...
- 2012-06-07 13:34
- 浏览 359
- 评论(0)
MFC 正规DLL
2.5 MFC 正规DLL ——CWinApp 派生类
当用 AppWizard 产生正规 DLL 时, DllMain 函数将出现在框架内,并且我们会得到一个 CWinApp 的派生类 ( 和一个该类的全局对象 ) ,就像 EXE 程序的情形一样。我们可以通过重载 CWinApp::InitInstance 和 CWinApp::ExitInstance 函数获得控制。然而大多数情况下,我们不用重载这两函数。我们只要编写 C 函数,然后用 __declspec(dllexport) 修饰符导出这些函数 ( 或者在工程的 DEF 文件里加入函数入口 ) 即可。
...
- 2012-06-06 16:03
- 浏览 280
- 评论(0)
definition of dllimport function not allowed
不允许dllimport函数的定义
本应该是导出,结果写成导入了,就会出现这个问题
改为:dllexport 问题解决。
- 2012-06-06 16:01
- 浏览 422
- 评论(0)
、Non-MFC DLL:指的是不用MFC的类库结构,直接用C语言写的DLL,其输出的函数一般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用。
b、Regular DLL:和下述的Extension Dlls一样,是用MFC类库编写的。明显的特点是在源文件里 ...
- 2012-06-06 15:34
- 浏览 315
- 评论(0)
1.HWND FindWindow (LPCTSTR lpClassName, LPCTSTR lpWindowName)
HWND FindWindowEx (HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName)
2.HWND WindowFromPoint(POINT& Point)
3.BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam) BOOL CALLBACK EnumChildWindows(HWND ...
- 2012-06-06 11:56
- 浏览 337
- 评论(0)
clw文件记录了类的信息,如果classView中某个类不见了,重新生成该文件就可以了,方法:删除此文件,点击“建立类向导”,根据提示输入工程名称就可以了;
.ncb文件记录了类的提示信息,如果类的成员函数和变量的提示不见了,重新生成该文件即可,方法同上;
.aps文件记录了资源信息,要利用现成的资源,需要修改3个文件,.rc文件,Resource.h文件和.aps文件,.aps直接删除后,进入程序,VC会自动生成。
opt是保存界面信息的文件,比如workplace,编辑器打开的那个文件,光标位置,等等等等
从网上某个VC使用技巧COPY来的:
VC项目文件说 ...
- 2012-06-06 11:56
- 浏览 237
- 评论(0)
#include <windows.h>#pragma comment(lib,"winmm.lib")//为了要播放声音,必须导入这个库LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine,
int iCmdShow)/* HINSTANCE
类型的含义为实例句柄。 hInstance
事实上就是当前应用程序自身的标识代号,代号通常都是一个3 ...
- 2012-06-05 16:02
- 浏览 483
- 评论(0)
API(Application programming interface)应用程序编程的接口
MSG(message)消息结构体
操作系统将每一个事件包装成一个称为消息MSG的结构体传递给应用程序
MSG的结构定义如下:(windows user interface : platform sdk )
Typedef struct tagMSG{
HWND hwnd;窗口的句柄句柄为资源的标识,按类型分为HICON /HCURSOR /HWND /HINSTANCE
UINT message;无符号整形具体的消息;用宏来表示数值WM开头的为宏WM_*
WPARAM wParam ...
- 2012-06-05 16:00
- 浏览 306
- 评论(0)
昨天在smth,有人问起RegisterClass函数到底将窗口类注册到哪里了,想了一下,应该是一个系统级的存储空间里,但是却没有一个明确的说法,msdn上看了半天,基本上没有提到具体注册的位置。倒是返回值给了不少提示,ATOM,查ATOM终于找到如下的一段描述
中文翻译:
该系统提供了一个原子表的数量。每个原子表提供不同的目的。例如,动态数据交换(DDE)应用程序使用全局原子表与其他应用共享的项目名称和主题名称字符串。而不是通过实际的字符串,一个DDE应用程序传递全局原子,其合作伙伴应用程序。合作伙伴使用的原子,从原子表获得的字符串。应用程序可以使用本地原子表来存储自己的项目名称协会。该系 ...
- 2012-06-05 15:56
- 浏览 384
- 评论(0)
对于Windows系统中各种控件换肤功能,要数滚动条的换肤最难实现了,尤其是控件自带的系统滚动条,如Edit、ListBox、ListView、TreeView等自带的系统滚动条,要想实现其自定义的皮肤功能,用常规办法似乎都无法实现。
对于常规的皮肤定制一般都是通过定制WM_PAINT、WM_ERASEBKGND、WM_CTLCOLORxxx、NM_CUSTOMDRAW来实现。然而系统滚动条的绘制,常规的、很阳光的方法行不通,微软把一条康庄大道堵死了。根据我的观察测试,系统滚动条有许多的消息都对其执行了绘制,这包括WM_NCPAINT、WM_NCMOUSEMOVE、WM_NCM ...
- 2012-06-05 13:10
- 浏览 287
- 评论(0)
VC 常用插件
1.Visual Assist(强烈推荐)[url]http://www.wholetomato.com/[/url]
VA从5.0一直到现在的VAX,功能越来越强大,除了以前版本中的自动识别各种关键字,系统函数,成员变量,自动给出输入提示,自动更正大小写错误,自动标 ...
- 2012-06-04 11:53
- 浏览 289
- 评论(0)
作者:朱金灿
来源:http://blog.csdn.net/clever101
对于xml文件,目前我的工作只是集中在配置文件和作为简单的信息文件来用,因此我不太喜欢使用msxml这种重量级的xml解析器,特别是使用msxml解析xml涉及到复杂的com类型转换,更是令人感觉繁琐。因此对于简单的xml文件的解析,我更愿意使用开源的TinyXml。
首先介绍一下TinyXml吧。TinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧玲珑,非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作,其主页是:http://www.grinning ...
- 2012-06-04 11:52
- 浏览 328
- 评论(0)
OnButtonDelete()
{
POSITION pos = m_list.GetFirstSelectedItemPosition();
int idx = m_list.GetNextSelectedItem(pos);
while (idx != -1){
LVITEM lvi;
lvi.iItem = idx;
lvi.iSubItem = 0;
lvi.mask = LVIF_IMAGE;
if (m_l ...
- 2012-05-29 13:33
- 浏览 423
- 评论(0)
GUID guid;
CString szGUID;
if (S_OK == ::CoCreateGuid(&guid))
{
szGUID.Format( "{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X} "
, guid.Data1
, guid.Data2
, guid.Data3
, guid.Data4[0], guid.Data4[1]
, guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.D ...
- 2012-05-29 10:47
- 浏览 348
- 评论(0)
老土的方式:
szColor.Replace("#", "");
int iArrColor[6] = {0};
TCHAR hexSeed[] = _T("0123456789ABCDEF");
for (int i = 0; i < 6; i++){
TCHAR tcByte = szColor.GetAt(i);
for (int j=0; j < 16; j++){
...
- 2012-05-23 16:22
- 浏览 514
- 评论(0)