永发信息网

vs2008关于lib 和dll问题(C++)

答案:3  悬赏:20  手机版
解决时间 2021-03-03 09:19
1、vs2008下如何在生成.dll的文件的同时生成.lib文件;
2、vs2008加载.lib同时,要定义个.h声明文件;是不是还有其他方法;
3、vs2008如何加载dll文件;
给个例子好么?
最佳答案
1)默认情况下,自动生成lib文件。
2)如果你知道所有导出函数的返回值类型,参数和函数名。可以不用.h文件。不过这样只能用代码动态加载DLL,无法在程序初始化时自动加载。
3)请看示例。

HINSTANCE hInstDLL = LoadLibrary(_T("a.dll"));
if(hInstDLL != NULL)
{
typedef VOID (*pFn)(VOID); // 这里定义函数指针,要根据你的实际情况
pFn pFunc = (pFn)GetProcAddress(hInstDll, "要加载的函数名");
if(pFunc != NULL)
pFunc(); // 调用DLL中的函数
else
AfxMessageBox(_T("函数加载失败"));
}
else
AfxMessageBox(_T("DLL加载失败"));
全部回答
1. 在编译器没毛病的情况下 2. 没 3. 连接和那个dll一起生成的lib,或者LoadLibrary+GetProcAddress 不好-ω-
用向导新建托管c++的类库,即dll,在需要的地方包含非托管代码的头文件,在托管dll工程属性里面,链接-》输入中填入非托管dll的lib文件,无论是添加引用路径还是输入全路径,保证文件都能找到。然后再托管代码的导出函数里面调用非托管代码的函数就行了。将非托管dll考到输出目录就ok了。托管代码中有些地方可能还需要显示的非托管标记,以及什么允许非托管代码的什么设置之类的忘了怎么写了。 __declspec(dllexport) int fndlltest(void);//非托管函数 托管dll include "dlltest.h" using namespace system; namespace cppdlldotnet { public ref class class1 {// todo: 在此处添加此类的方法。 public: static void myfun(){fndlltest();}};} 测试程序: / clrcppconsol.cpp: 主项目文件。 #include "stdafx.h" using namespace system; int main(array<system::string ^> ^args) { console::writeline(l"hello world"); cppdlldotnet::class1::myfun();//!!!! return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一战后,在巴黎和会和华盛顿会议,旨在调整国
临潼曲江拆迁给因上学户口迁出的人有补偿吗
中兴大酒店怎么去啊,有知道地址的么
上面一个装下面一个逼这怎么读
狮牌冲锋衣怎么样
当年9500GT,9600GT都算中低端显卡,9800GT才
漫画、动漫中的用词
嘉陵白菜摩托车为什么后轮有宽有窄?
怎么查DIOR唇膏真伪
有人知道宠物托运价格吗?给我说说呗。
制冷系统的干燥过滤器的工作原理?
中国泰山世界地质公园-革命烈士纪念碑在哪里
为什么我家下了暗黑破坏神2 1.11中文版的,但
山东的四大名拳是?
求韩语高手帮忙,申请大学用的入学动机帮忙翻
推荐资讯
A叫B哥哥,A的父亲和B的父亲是兄弟,A的父亲
如图所示,小车的质量为M.人的质量为m,人用
2017年鸡西公租房公示名单
---_____ the man over there be your Chines
徐州南秀北雄酒店电话多少?
娜塔莉百度云资源
云南金色太阳农药有限公司我想知道这个在什么
机动车灭失证明如何写? 80分
西门子滚桶洗衣机串激电动机有6根线请问是什
【夜者】遇言:冬者岁之余夜者日之余阴雨者时
大门钥匙拔断了,可以不换锁吗,用什么方法可拨
天鹅理发厅这个地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?