вопрос по DLL в С++
int f=sin(1);
или так:
struct A
{
A{}
} a;
вроде есть.
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /dll /incremental:no /pdb:"Release/adc.pdb" /machine:I386 /out:"Release/adc.dll" /implib:"Release/adc.lib"
Обратите внимание на ключ /dll. У Вас, скорее всего, вместо него будет /subsystem:console. Я попробовал в своём проекте DLL поменять /dll на /subsystem:console и получил описанный Вами эффект. Рискну предположить, что то, что Вы чего-то там вызываете из другой DLL не при чем. Если я был прав, то замена /subsystem:console на /dll поможет. Где менять, см. выше. Также может иметь смысл просто перенести все *.h и *.cpp файлы Вашего проекта в новый workspace созданный мастером New-> вкладка Project->Win32 Dynamic Link Library.
/entry:_DllMainCRTStartup
While it is possible to specify another entry-point function using the /ENTRY: linker switch, it is not recommended because your entry-point function would have to duplicate everything that _DllMainCRTStartup does. When building DLLs in Visual C++, _DllMainCRTStartup is linked in automatically and you do not need to specify an entry-point function using the /ENTRY: linker switch .
The C run-time library behavior and _DllMainCRTStartup, MSDN.
обе библиотеки работают из обыкновенных приложений. А когда одну из другой вызываешь, начинаются приключения. Завтра попробую /entry
entry point не помогает: начинает ругаться, что функцию такую не знает.
По __DllMainCRTStartup ситуация следующая: ошибка про _main осталась, добавилась та же хрень про __DllMainCRTStartup + еще ошибка по то, что она не __stdcall
Оставить комментарий
irina-sokolov
Вызываю из одной DLL функции в другой DLL.Линкер ругается на неопределенную функцию _main.
Кто-нибудь может сказать, в чем дело?