C ++, ASM и Cout - PullRequest
       47

C ++, ASM и Cout

1 голос
/ 15 ноября 2011

Я использую VC ++ для дизассемблирования очень простой программы, которую я написал:

#include <iostream>

using namespace std;

int main()
{
    for(int i = 0; i < 11; i++)
    {
        cout << i << endl;
    }
    return 0;
} 

Я надеялся пролить свет на то, как работает cout, но при осмотре полученный ASM указывает навнешний источник (я полагаю):

EXTRN __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A

Есть ли способ определить из вышеприведенной строки, на что конкретно он указывает и как получить к нему доступ?Даже до сих пор, как читать вышеуказанную строку?

Ответы [ 2 ]

4 голосов
/ 15 ноября 2011

Вам не нужно разбирать это.Источники MS потоков являются частью установки Visual Studio.См .: «C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ crt \ src»

0 голосов
/ 15 ноября 2011

cout предоставляется средой выполнения C ++. В случае Visual C ++ это будет MSVCPxxxx.dll (xxxx в зависимости от версии и отладки / выпуска).

Вы можете искать эти вещи, используя что-то вроде «CFF Explorer» или «Ходок по зависимостям» и просматривая каталог импорта программы.

...