Форум программистов, компьютерный форум CyberForum.ru

Как узнать, какой функции какой файл *.a соответсвует? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Про деструктор и утечку памяти http://www.cyberforum.ru/cpp/thread446749.html
Доброе время суток. Вот что дано: #include <string> #include <vector> class Symbols { protected: void add(std::string str); // добавления символа virtual void inputData() = 0; // заполнение вектора data нужными символами
C++ Создать exe, запускающий exe Говорю сразу: я ничего не смыслю в програмировании; зачем подался на такой форум? Надеюсь получить ответ на свой вопрос,упавая на то, что его реализация не такая сложная. У меня возникла потребность, создать exe файл, который запускает другую программу. То есть: просто тупо играет роль посредника. Другими словами: что-то наподобие ярлыка, только exe , а не lnk. Существует ли решение... http://www.cyberforum.ru/cpp/thread446459.html
Странное поведение bool C++
Помогал отлаживать код и мы наткнулись на удивительное. Кодер скрыл отображение варнингов в VS2010. Метод М1 не всегда возвращал значение типа bool. И потому в методе М2, вызывающем метод М1, случилась такая ситуация, что: M1()!=true & M1()!=false Это нормальное поведение компилятора? Логика то понятна, но почему это вообще варнинг, а не еррор как в си шарпе?
Есть два потока и глобальный массив, могут ли потоки перепутать элементы глобального массива или другого контейнера? C++
Начать с массивов, допустим То есть ситуация такая: пусть имеется два потока и глобальный массив элементов int из двух элементов, один поток выводит в цикле значение нулевого элемента, а второй- значение первого; вот сижу думаю- могут ли они перепутать элементы? С одной стороны не могут потому как обращение к элементу по индексу однозначаено идентифицирует этот элемент; а с другой стороны,...
C++ Как средствами BC 3,1 запросить свободное место на указанном жёстком диске? http://www.cyberforum.ru/cpp/thread444851.html
Извиняюсь, если создал лишнюю тему, но ничего по своей проблемке я вроде не заметил. Если что-то есть, поправьте. А вопрос в следующем: как средствами BC 3,1 запросить свободное место на указанном жёстком диске?
C++ Указания адреса функции Есть библиотека. Нужно чтобы функция в моей библиотеке указывала на функцию в чужой. Вот мой код: typedef int (WINAPI WJMP)(); extern "C" __declspec(dllexport) WJMP Test(void); *Test= GetProcAddress(hLib, "Test"); Ошибки 1. error C2091: функция возвращает функцию подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,298
17.02.2012, 18:09  [ТС]     Как узнать, какой функции какой файл *.a соответсвует?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include <windows.h>
#include <stdio.h>
#include <string>
#include <stdlib.h>
#include <vector>
#include <conio.h>
#include <iostream>
#include <iterator>
#include <fstream>
#include "funktsii.h"
using namespace std;
 
//Это понятно, что такое- вектор строк имён файлов с расширением "lib"
vector <string> imena_failov_lib;  
 
//Имя функции
//string ima_funktsi;
string ima_funktsi= "_strcat_s";
 
string temp_;
 
void interfeis ();
int main () {
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 //Тут будут имнеа файлов, в которых упоминается нужная функция
 vector <string> imena_failov_s_funktsiei;
 
 char ima_papki [MAX_PATH];
 
  //interfeis ();
 
 //ПРверим, с чем работаем- с папкой или с файлом, если с папкой- заполним её 
 //сответсвующим содержаниема
 if (!(imena_failov_lib.size())) {
//  imena_failov_lib= GetFileList (strcpy (ima_papki, temp_.c_str()), (LPTSTR)"lib", (LPTSTR)"LIB");
  imena_failov_lib= GetFileList (strcpy (ima_papki, "E:\\Microsoft_Visual_Studio_9.0"), (LPTSTR)"lib", (LPTSTR)"LIB");
  if (!(imena_failov_lib.size())) {
   printf ("пОхоже, что таких файлов нет!");
   getchar ();
   return 1;
  }
 } 
  
 ifstream iff;
 //Погнали работать
 for (int i= 0; i< imena_failov_lib.size(); i++) {
  string str;
 
  char komanda [MAX_PATH]= "reimp -s \"";
  strcat (komanda, imena_failov_lib[i].c_str());
  strcat (komanda, "\"");
  strcat (komanda, ">> temp_f.txt");
  system (komanda);
  iff.open("temp_f.txt");
  cout<<"проверяем "<< imena_failov_lib [i]<< endl;
  while(getline(iff, str)) {
   if (str.find(ima_funktsi)!=string::npos) {
    imena_failov_s_funktsiei.push_back (imena_failov_lib[i]);
    break;
   }
  }
  iff.close ();
  if (!DeleteFile ("temp_f.txt")) {
   Sleep (1000);
   if (!DeleteFile ("temp_f.txt")) {
    printf ("Чё-то не удаётся удалить ненужый файл\n");
    getchar ();
    return 1;
   }
  }
 }
 
 if (!(imena_failov_s_funktsiei.size())) 
  cout<< "Чё-то ничё не удалось найти"<< endl; 
 else {
  cout<< "\n+++++++++++++++++++++\n\nЭто: "<< ima_funktsi<<endl<<"Упоминается в файлах:\n"<<endl;
  copy (imena_failov_s_funktsiei.begin(), imena_failov_s_funktsiei.end(), ostream_iterator<string>(cout, "\n"));
 }
 fflush (stdin);
 getchar ();
  
 return 0;
}
 
void interfeis () {
 char temp;
 printf ("Ты будешь работать с одним файлом или с несолькими (1- один файл, 0- несколько)\n");
 do {
  temp= getch ();
 }
 while (temp!= '1' && temp!= '0');
 
 if (temp== '1') {
  printf ("Вводи имя файла\n"); 
  cin>> temp_;
  imena_failov_lib.push_back (temp_);
 }
 else { 
  printf ("Вводи имя папки, если текущая- вводи точку, родительская- две точки, всё, как положено\n"); 
  cin>> temp_;
  
  //Уберём слэши с конца, если есть
  string::iterator it= temp_.end();
 
  while (*--it== '\\');
   it++;
 
  temp_.erase (it, temp_.end());
 
 }
 
 printf ("А теперь вводи имя функции, упоминание о которой хочешь встретить в *.lib файле\n"); 
 cin>> ima_funktsi;
 
};
Крайне важно! В первом посте допущена грубейшая ошибка. В функции GetFileList объявлен локальный вектор строк, но он должен быть СТАТИЧЕСКИМ. Эта функция возвращает этот вектор (полные имена в файлов) и если он будет локальным, то в функцию main вернётся вектор из строк, сформированных только при ПЕРВОМ вызове GetFileList. Пожалуйста поправьте!

То есть
C++
1
vector <string> te;
Надо заменить на
C++
1
static vector <string> te;
Вложения
Тип файла: rar reimp.rar (95.4 Кб, 10 просмотров)
 
Текущее время: 04:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru