原理是将dll工程属性修改为控制台属性,于是main函数就可以启动了。
有如下动态库代码【顺便写一个main函数调用】:
此时有两种方法可以修改工程属性
方法一:直接修改工程对应的vcxproj文件
1.将<SubSystem>Windows</SubSystem>
替换成<SubSystem>Console</SubSystem>2.将<ConfigurationType>DynamicLibrary</ConfigurationType>
替换成<ConfigurationType>Application</ConfigurationType>
如图:
方法二:vs页面进行修改
配置类型改为应用程序exe
子系统改为控制台
属性修改完以后,就可以从main函数运行了。
如果不想修改成控制台程序,可以写winmain的入口:
int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
int x = fun(10);
return 0;
}
注意问题:
mfc动态库使用clr支持时,这个方法没法用
win32动态库clr支持时,调用也存在一些问题