
在vs2008下,新建了vc++控制台应用程序,调用dll里面的函数。但是当运行的时候发现,窗口显示不出来。?
extern"C"__declspec(dllimport)voidput1();int_tmain(intargc,_TCHAR*argv[]){put1();retu...
extern "C" __declspec(dllimport) void put1();
int _tmain(int argc, _TCHAR* argv[])
{
put1();
return 0;
}
这是代码,dll和lib已放置在工程下,也已添加依赖项,请问为什么控制台窗口显示不出来,就是一闪而过,什么东西也没有。我的put1()函数是输出一个字符串。 展开
int _tmain(int argc, _TCHAR* argv[])
{
put1();
return 0;
}
这是代码,dll和lib已放置在工程下,也已添加依赖项,请问为什么控制台窗口显示不出来,就是一闪而过,什么东西也没有。我的put1()函数是输出一个字符串。 展开
4个回答
展开全部
这个问题要从控制台如何输出说起,系统会为程序生成3个输出流,即out,in,err。所以当你在程序里调用库函数如printf, cout等时,都是库函数对这3个流进行操作。此处你如果把这些库函数调用放到dll里。虽然这里你用的是静态加载,不过因为dll和主程序的模块参数不同(相关可以查查这个宏AFX_MANAGE_STATE)。也就是说dll里的代码访问不到主程序里的这3个流。所以没有输出。
初学的话,可以写一些返回值的函数。然后在main中察看返回值。
初学的话,可以写一些返回值的函数。然后在main中察看返回值。
展开全部
直接return了,当然是一闪而过。
int _tmain(int argc, _TCHAR* argv[])
{
put1();
system("pause"); //等待任意键继续
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
put1();
system("pause"); //等待任意键继续
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Ctrl+F5
按键组合。
按键组合。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你没有LoadLibrary
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询