반응형

참고 코드이므로,

참고하세요~^^

 

 

DWORD* address = 0;

DWORD hTest = (DWORD)GetModuleHandle("test.dll");
DWORD addressTable = 0x1019301;


memcpy(&address, (void*)(addressTable+2), 4);   <---- 여기가 중요
 
DWORD dwTest1                 = address[35];
DWORD dwTest2                  = address[71];
DWORD dwTest3                  = address[83];
DWORD dwTest4                  = address[40];
DWORD dwTest5                  = address[50];

 

 

 

참고사항 임....

 

반응형

'프로그래밍 > API/MFC Source' 카테고리의 다른 글

Data Conversions  (0) 2012.07.31
[MFC] ListControl 컬럼 추가  (0) 2012.06.07
[MFC] 폴더 선택 함수  (0) 2012.06.04
반응형

출처 : http://www.codeproject.com/Articles/2510/Data-Conversions

Decimal Conversions

Decimal To Hex

 // Use _itoa( ) function and set radix to 16.

char hexstring[10];

int number = 30;

itoa( number, hexstring, 16); // In hexstring is 1e.

 

Hex To Decimal 

 // You can use strtol function and you can specify base.

char * hexstring= "ABCDEF";
char * p;
int number = strtol(hexstring, &p,16);

//  A function that does this

bool HexToDecimal (char* HexNumber, int& Number)
{
    char* pStopString;
    Number = strtol (HexNumber, &pStopString, 16);
    return (bool)(Number != LONG_MAX);
}

Decimal to time

 char *DecToTime(float fTime, char *szTime)
{
    int nHrs, nMin, nSec;
    fTime *= 3600;
    nHrs = (int)fTime / 3600;
    nMin = (int)(fTime - nHrs * 3600) / 60;
    nSec = (int)(fTime - nHrs * 3600 - nMin * 60);
    wsprintf(szTime, "%02d.%02d.%02d Hrs.Min.Sec.", nHrs, nMin, nSec);
    return szTime;
}

String Conversions

String to Hex

sscanf(string, %04X, &your_word16);
// where string = your string and
// 04 = length of your string and X = hex 

Hex to CString

CString Str;
unsigned char Write_Buff[1];
Write_Buff[0] = 0x01;
Str.Format("0x0%x",Write_Buff[0]);

 

COleVariant to CString

CString strTemp;
COleVariant Var;
Var = "FirstName";
strTemp = Var.bstrVal;
AfxMessageBox(strTemp); 

 

CString to char pointer

CString MyString = "ABCDEF";
char * szMyString = (char *) (LPCTSTR) MyString;

 

char *pBuffer = new char[1024];
CString strBuf = "Test";
pBuffer = strBuf.GetBuffer(sizeof(pBuffer)); 

 

char pointer to CString

char * mystring = "12345";


CString string = mystring; 

 

Double to CString including the fractional part

CString strValue,strInt, strDecimal;
int decimal,sign;
double dValue = 4.125;
strValue = _fcvt(dValue,6,&decimal,&sign);
    // Now decimal contains 1 because there is
    // only one digit before the .

strInt = strValue.Left(decimal); // strInt contains 4
strDecimal = strValue.Mid(decimal); // strDecimal contains 125

CString strFinalVal;
strFinalVal.Format("%s.%s",strInt,strDecimal);
    // strFinalVal contains 4.125 

 

Double To CString

CString strValue;
int decimal,sign;

 

double dValue = 123456789101112;
strValue = _ecvt(dValue,15,&decimal,&sign); 

 

CString To Double

strValue = "121110987654321";
dValue = atof(strValue); 

 

CString to LPCSTR

CString str1 = _T("My String");
int nLen = str1.GetLength();
LPCSTR lpszBuf = str1.GetBuffer(nLen);
// here do something with lpszBuf...........
str1.ReleaseBuffer(); 

 

CString to LPSTR

CString str = _T("My String");
int nLen = str.GetLength();
LPTSTR lpszBuf = str.GetBuffer(nLen);
// here do something with lpszBuf...........
str.ReleaseBuffer(); 

 

CString to WCHAR*

 

CString str = "A string here" ;
LPWSTR lpszW = new WCHAR[255];

LPTSTR lpStr = str.GetBuffer( str.GetLength() );
int nLen = MultiByteToWideChar(CP_ACP, 0,lpStr, -1, NULL, NULL);
MultiByteToWideChar(CP_ACP, 0, lpStr, -1, lpszW, nLen);
AFunctionUsesWCHAR( lpszW );
delete[] lpszW;

 

LPTSTR to LPWSTR

int nLen = MultiByteToWideChar(CP_ACP, 0, lptStr, -1, NULL, NULL);
MultiByteToWideChar(CP_ACP, 0, lptStr, -1, lpwStr, nLen);

 

string to BSTR

string ss = "Girish";
BSTR _bstr_home = A2BSTR(ss.c_str()); 

 

CString to BSTR

 CString str = "whatever" ;
BSTR resultsString = str.AllocSysString();

 

_bstr_t to CString

#include <ANSIAPI.H>
#include <comdef.h>
_bstr_t bsText("Hai Bayram");
CString strName;
W2A(bsText, strName.GetBuffer(256), 256);
strName.ReleaseBuffer();
AfxMessageBox(strName);

 

char szFileName[256];
GetModuleFileName(NULL,szFileName,256);
AfxMessageBox(szFileName);

 

Character arrays

Char array to integer

 char MyArray[20];
int nValue;

 

nValue = atoi(MyArray);

 

Char array to float

char MyArray[20];
float fValue;

 

fValue = atof(MyArray); 

 

Char Pointer to double

char *str = " -343.23 ";
double dVal;
dVal = atof( str );

 

Char Pointer to integer

 char *str = " -343.23 ";
int iVal;
iVal = atoi( str );

 

Char Pointer to long

char *str = "99999";
long lVal;


lVal = atol( str ); 

 

Char* to BSTR

 char * p = "whatever";
_bstr_t bstr = p;

 

Float to WORD and Vice Versa

 float fVar;
WORD wVar;
fVar = 247.346;
wVar = (WORD)fVar; //Converting from float to WORD.
    //The value in wVar would be 247

 

wVar = 247;
fVar = (float)fVar; //Converting from WORD to float.
    //The value in fVar would be 247.00

 

반응형

'프로그래밍 > API/MFC Source' 카테고리의 다른 글

주소를 배열로 연결하는 방법  (0) 2014.02.07
[MFC] ListControl 컬럼 추가  (0) 2012.06.07
[MFC] 폴더 선택 함수  (0) 2012.06.04
반응형

    // List Control 컴퍼런스 선택 후 수정해야 함.
    LPWSTR szText[3] = {L"갯수", L"파일명", L"CheckSum 값"};
    int nWid[3] = {50, 100, 305};
   
    UpdateData(TRUE);

    LV_COLUMN lCol;  // 컬럼 설정하기 위한 구조체
    lCol.mask = LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH; // 구조체의 기능을 확장할 플래그 지정
    lCol.fmt = LVCFMT_CENTER;   // 컬럼 정렬 (_CENTER, _LEFT, _RIGHT)

    for (int i = 0; i < 3; i++)
    {
        lCol.pszText = szText[i];           // 컬럼의 제목 지정
        lCol.iSubItem = i;         // 서브아이템의 인덱스 지정
        lCol.cx = nWid[i];         // 컬럼의 넓이 지정

        // LVCOLUMN 구조체로 만들어진 값을 토대로 리스트 컨트롤에 컬럼을 삽입
        m_ListBox.InsertColumn(i, &lCol);  
    }

    UpdateData(FALSE);

 

 

반응형

'프로그래밍 > API/MFC Source' 카테고리의 다른 글

주소를 배열로 연결하는 방법  (0) 2014.02.07
Data Conversions  (0) 2012.07.31
[MFC] 폴더 선택 함수  (0) 2012.06.04
반응형

void FolderSelectFunc()

{

    ITEMIDLIST *pidlBrowse;
    WCHAR       pszPathname[MAX_PATH];
    // MFC에서는 FolderBrowserDialog 를 지원하지 않아, 구조체를 선언하여 직접 호출 해야 한다.
    // 직접 호출 하기 위해서는 BROWSEINFO 구조체를 사용해야 한다.
    BROWSEINFO  BrInfo;
    // 자기 자신의 핸들을 가지고 옴.
    BrInfo.hwndOwner = GetSafeHwnd();
    BrInfo.pidlRoot = NULL; // NULL 이면 "바탕화면" 초기 설정
                            // ITEMIDLIST 구조체에서 지정함.

    memset(&BrInfo, 0, sizeof(BrInfo));
    BrInfo.pszDisplayName = pszPathname;
    BrInfo.lpszTitle = _T("Select Directory");
    BrInfo.ulFlags = BIF_RETURNONLYFSDIRS;

    pidlBrowse = ::SHBrowseForFolder(&BrInfo);

    if(pidlBrowse != NULL)
    {
        SHGetPathFromIDList(pidlBrowse, pszPathname);
    }
    MessageBox(pszPathname, L"선택된 폴더명", MB_OK);
    UpdateData(FALSE);

}

 

 

반응형

'프로그래밍 > API/MFC Source' 카테고리의 다른 글

주소를 배열로 연결하는 방법  (0) 2014.02.07
Data Conversions  (0) 2012.07.31
[MFC] ListControl 컬럼 추가  (0) 2012.06.07

+ Recent posts