2010-12-08 31 views

回答

1

試試這個:

CString str("0x1b1be0"); 
void* ptr = (void *)_tcstoul(str.GetBuffer(), 0, 0); 

而且這是純C:

#include <stdlib.h> 
#include <stdio.h> 

int main() 
{ 
    char *s = "0x1b1be0"; 
    void *p = (void *)strtoul(s, 0, 0); 
    printf("%p", p); 
    return 0; 
} 

試試它Codepad

注意:此版本沒有錯誤檢查。只是爲了展示這個想法。

1
#include <sstream> 

std::stringstream s; 
s << "0x1234"; 
void* a; 
s >> std::hex >> a; 
0

這是一段代碼。

#include <sstream> 
#include <iostream> 

int main() { 
    void * x; 
    std::stringstream ss; 
    ss << std::hex << "0x1b1be0"; 
    ss >> x; 
    std::cout << x << std::endl; 
} 
0

嗯,除非你寫的東西非常低的水平,例如一個調試器,不必做這樣的事情是非常值得懷疑的......

你確定你知道什麼是指針手段?

你知道指針對你的過程是私有的嗎?他們通常在外面沒有意義。

要回答你的問題,你明明有:

  1. 將您的字符串轉換爲intptr_t使用例如std::sscanf%x格式說明。
  2. reinterpret_cast< void* >指定指針。