Получите карту ссылок или используйте dumpbin
, чтобы получить список символов и размеров.
Скорее всего, есть много вещей, которые вам не нужны.
ДОБАВЛЕНО: Вы получили удовлетворительный ответ? Я понял, что есть два способа, которыми люди подходят к таким проблемам:
- Получите измерения, прежде чем что-либо делать.
- Просто найдите что-то большое, в чем они не нуждаются, вырвите это и повторяйте, пока они не смогут.
Лично я предпочитаю последнее - результаты быстрее.
Вы говорите, что приложение составляет 4 МБ. Предположим, что истинный необходимый размер составляет 1 МБ (или некоторый такой размер). Это означает, что если вы случайным образом выберете процедуру из файла карты, с вероятностью 75% это будет то, что вам не нужно. Узнайте, что является причиной его включения, и посмотрите, действительно ли вам это нужно.
В приведенном вами примере вы увидели класс, который переносит независимые от устройства растровые изображения. Вы можете найти экземпляры этого класса в своем приложении и, возможно, заменить их на базовые растровые изображения WIN32. Это было бы менее красиво, но сохраняло бы большие размеры приложения.
Тогда продолжай делать это. Каждая большая часть, от которой вы избавляетесь, заставляет оставшиеся части занимать больший процент приложения, потому что приложение сократилось, а части нет. Это облегчает их поиск в файле карты.