2855|0

64

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

***关于VIRTUALCOPY的使用问题(在EVC下调试总出现错误怎么都解决不了,多谢各位指教了,我好着急!!)*** [复制链接]

我现在在做一个很简单的程序,我是个初学者。我用几个按钮控制FPGA的灯的亮灭,环境EVC4,PB。
我现在面临的问题是:我只要往BANK4(即对应FPGA的地址,从MAP。A中查到他的虚拟地址是0x88000000)中写个数字就行,FPGA那边有同学在做,从里边读出数字来控制哪个灯亮即可。我只新建了个工程用VIRTUALALLOC和VIRTUALCOPY开辟了空间,编译没问题,可是我要运行在模拟器上时(点击BUILD)有问题,错误如下:
--------------------Configuration: light_control - Win32 (WCE emulator) Debug--------------------
Linking...
light_controlDlg.obj : error LNK2019: unresolved external symbol "int __cdecl VirtualCopy(void *,void *,unsigned

long,unsigned long)" (?VirtualCopy@@YAHPAX0KK@Z) referenced in function "protected: virtual int __thiscall

CLight_controlDlg::OnInitDial
og(void)" (?OnInitDialog@CLight_controlDlg@@MAEHXZ)
emulatorDbg/light_control.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

light_control.exe - 2 error(s), 0 warning(s)

我从网上查了好多,说是没将包含的库链接上,请问
1VIRTUALCOPY的库是什么?是COREDLL.LIB么?
2我在PLATFORM/SETTING下加上了COREDLL.LIB的绝对路径,可是还不对
3VIRTUALCOPY怎么用啊?谁可以可以给我一个小工程看看么?
4我是一个初学者,麻烦讲详细一些吧,把步聚列出来
多谢各位了
邮箱clearsunrain2008@163.com


我的程序是(我标注的是我加的代码,其余是建了工程后就自动有的):
/ light_controlDlg.cpp : implementation file
//

#include "stdafx.h"
#include "light_control.h"
#include "light_controlDlg.h"

//新加*******************************
#include "s2410.h"
#define a_base 0x88000000
//*******************************

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

//新加*******************************

volatile int *a;

#ifdef _cplusplus
extern "C"
{
        #endif
        BOOL VirtualCopy(LPVOID,LPVOID,DWORD,DWORD);
        #ifdef _cplusplus
}
#endif
//***********************************


/////////////////////////////////////////////////////////////////////////////
// CLight_controlDlg dialog

CLight_controlDlg::CLight_controlDlg(CWnd* pParent /*=NULL*/)
        : CDialog(CLight_controlDlg::IDD, pParent)
{
        //{{AFX_DATA_INIT(CLight_controlDlg)
                // NOTE: the ClassWizard will add member initialization here
        //}}AFX_DATA_INIT
        // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CLight_controlDlg::DoDataExchange(CDataExchange* pDX)
{
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CLight_controlDlg)
                // NOTE: the ClassWizard will add DDX and DDV calls here
        //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CLight_controlDlg, CDialog)
        //{{AFX_MSG_MAP(CLight_controlDlg)
        ON_WM_HELPINFO()
        ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
        ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
        ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
        ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
        ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
        ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
        //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLight_controlDlg message handlers

BOOL CLight_controlDlg::OnInitDialog()
{
        CDialog::OnInitDialog();

        // Set the icon for this dialog.  The framework does this automatically
        //  when the application's main window is not a dialog
        SetIcon(m_hIcon, TRUE);                        // Set big icon
        SetIcon(m_hIcon, FALSE);                // Set small icon
       
        CenterWindow(GetDesktopWindow());        // center to the hpc screen

// ************************************************d


        a=(volatile int*)VirtualAlloc(0,512,MEM_RESERVE,PAGE_NOACCESS);
        if(a==NULL)
        {
                DEBUGMSG(1,(TEXT("a is not allocated\n\r")));
                return TRUE;
        }
        if(!VirtualCopy((PVOID)a,(PVOID)a_base,512,PAGE_READWRITE|PAGE_NOCACHE))
        {
            DEBUGMSG(1,(TEXT("a is not mapped\n\r")));
                  return TRUE;       
            }
                    DEBUGMSG(1,(TEXT("a is mapped to %x\n\r"),a));



//**************************************************





        //**************************************************
       
        return TRUE;  // return TRUE  unless you set the focus to a control
}

void CLight_controlDlg::OnHelpInfo()
{
        // TODO: implement help here
        MessageBox(_T("Help"));
}


void CLight_controlDlg::OnButton1()
{
        //新加 TODO: Add your control notification handler code here
        *a=1;
       
}

void CLight_controlDlg::OnButton2()
{
        // 新加TODO: Add your control notification handler code here
        *a=2;
}

void CLight_controlDlg::OnButton3()
{
        // 新加TODO: Add your control notification handler code here
        *a=3;
}

void CLight_controlDlg::OnButton4()
{
        // 新加TODO: Add your control notification handler code here
        *a=4;
}

void CLight_controlDlg::OnButton5()
{
        // 新加TODO: Add your control notification handler code here
        *a=5;
}

void CLight_controlDlg::OnButton6()
{
        //新加 TODO: Add your control notification handler code here
        *a=6;
}

点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表