| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 342 人关注过本帖
标题:拜求各位大侠解决一个指针做参数传递的问题,十分感谢!!!!!!!
只看楼主 加入收藏
system3288
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:140
注 册:2010-10-9
结帖率:88.89%
收藏
已结贴  问题点数:100 回复次数:4 
拜求各位大侠解决一个指针做参数传递的问题,十分感谢!!!!!!!
各位大哥,大侠,高手们,请教一个简单的C语言指针做参数的问题。
我基础学得不好,所以,才来问这种小问题,希望各位大侠抽点时间帮忙解决,在此谢过了!!!!
下面说一下我的程序,我写了一个类,类里面封装了几个函数,函数的参数都是指针类型的,我想在函数里得到的指针值再把它赋给参数带回主函数,可是应该要怎么操作才能达到我的要求呢?下面把我写的代码贴出来,请各位大哥帮忙看下。
程序代码:
#include <Windows.h>

class PEinfo
{
public:
    PEinfo();
    ~PEinfo();
    BOOL GetDosHeader(IMAGE_DOS_HEADER *pDosHeader);//获取PE头指针
    BOOL GetNtHeader(IMAGE_NT_HEADERS *pNtHeader);
    BOOL GetSection(IMAGE_SECTION_HEADER *pSectionHeader);
    BOOL GetFilePath();//加载文件
private:
    DWORD pBuffer;
    IMAGE_DOS_HEADER *m_DosHeader ;
    IMAGE_NT_HEADERS *m_NtHeader ;
    IMAGE_SECTION_HEADER *m_SectionHeader ;
   
};
PEinfo::PEinfo()
{
    pBuffer = NULL;
    m_DosHeader = NULL;
    m_NtHeader = NULL;
    m_SectionHeader = NULL;
}
BOOL PEinfo::GetFilePath()
{
    pBuffer = (DWORD)LoadLibraryA("C:\\Documents and Settings\\Administrator\\桌面\\MyDll\\Debug\\Mydll.dll");
    if (pBuffer == NULL)
    {
        return FALSE;
    }
    return TRUE;
}
BOOL PEinfo::GetDosHeader(IMAGE_DOS_HEADER *pDosHeader)
{
    m_DosHeader = (IMAGE_DOS_HEADER *)pBuffer;
    if (m_DosHeader == NULL)
    {
        return FALSE;
    }
    pDosHeader = m_DosHeader;
    return TRUE;
}

BOOL PEinfo::GetNtHeader(IMAGE_NT_HEADERS *pNtHeader)
{
    m_NtHeader = (IMAGE_NT_HEADERS *)(pBuffer+m_DosHeader->e_lfanew);
    if (m_NtHeader == NULL)
    {
        return FALSE;
    }
    pNtHeader = m_NtHeader;
    return TRUE;
}
PEinfo::~PEinfo()
{

};
BOOL PEinfo::GetSection(IMAGE_SECTION_HEADER *pSectionHeader)
{
    m_SectionHeader = (IMAGE_SECTION_HEADER *)(pBuffer+m_DosHeader->e_lfanew+sizeof(IMAGE_NT_HEADERS));
    if (m_SectionHeader == NULL)
    {
        return FALSE;
    }
    pSectionHeader = m_SectionHeader;
    return TRUE;
}

int _tmain(int argc, _TCHAR* argv[])
{
    
   
    IMAGE_DOS_HEADER *MyDosHeader = NULL;
    IMAGE_NT_HEADERS *MyNtHeader = NULL;
    IMAGE_SECTION_HEADER *MySection = NULL;
    PEinfo Mypeinfo;
    Mypeinfo.GetFilePath();
    Mypeinfo.GetDosHeader(MyDosHeader);//重点是这里,我想在这里获取函数里面的PE头指针,可是这样貌似不行哦。请各位大侠指点一下,谢啦。
   
    system("pause");
    return 0;
}
以上程序有哪些错误不不足之处,望各位大侠指出,再次感谢。
搜索更多相关主题的帖子: C语言 
2011-06-28 15:06
wangboa123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:72
专家分:129
注 册:2009-2-13
收藏
得分:30 
使用指针的指针或者指针的引用就可以了
2011-06-28 21:24
wangboa123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:72
专家分:129
注 册:2009-2-13
收藏
得分:60 
BOOL PEinfo::GetDosHeader(IMAGE_DOS_HEADER **pDosHeader)
{
    m_DosHeader = (IMAGE_DOS_HEADER *)pBuffer;
    if (m_DosHeader == NULL)
    {
        return FALSE;
    }
    *pDosHeader = m_DosHeader;
    return TRUE;
}
这样应该可以了
2011-06-28 21:25
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
收藏
得分:10 
帮顶···
2011-06-29 23:27
system3288
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:140
注 册:2010-10-9
收藏
得分:0 
回复 2楼 wangboa123
呵呵,谢谢你的回复,问题已经解决了,你说的很正确。再次感谢。
2011-06-30 11:49
快速回复:拜求各位大侠解决一个指针做参数传递的问题,十分感谢!!!!!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013257 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved