是不是vc的dll,只要转化出c++builder的lib,c++builder就可以调用dll了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是不是vc的dll,只要转化出c++builder的lib,c++builder就可以调用dll了相关的知识,希望对你有一定的参考价值。

参考技术A vc创建标准dll的时候,会自动生成lib和dll文件。调用方式不管是bldc++还是vc++ 还是vb等调用都可以通过动态加载的方式加载。另外 c++可以用过引用header和引用lib文件进行使用dll。
换句话说,不使用lib,可以加载,使用lib也可以加载追问

我现在想静态调用呢

追答

已经解释过,静态调用引用lib即可.
#include "xxxx.h"
#pragma comment(lib,"xxxxx.lib");
引用lib后就可以调用dll

追问

vc的lib跟cbc的兼容?

追答

编写windows程序是的。bc和vc只不过编辑器和编译器不同,仅此而已。

追问

vc封装的库bcb是不可以直接静态调用的,他们封装的方式不同

追答

那就 coff2omf -lib:st 转一下呗

追问

转过了,还是不行,有没有什么情况转不成功的?所以我才问是不是只要转换出C++builder的lib就可以调用的

追答

是extern c declspec dllexport 格式?

追问

追答

我了个去,dumpbin看一下,如果都正常的话我也不知道怎么个情况了。

vc中怎样把数字转化为字符串

//DH用于保存星期几第几节课。
//这地方有问题
//CString DH = "0000";
想在程序中实现,DH字符串的OXOX的x分别代表星期几和第几节课。
现在已经在int D中保存了星期几,在char nu中保存了第几节课。
应该怎样实现添加到DH中?
各位大侠多多帮助。不怎么懂,先给30分吧!
(1)CString DH;
DH.Format("0%d0%c",D,nu);
调试下,保存的不是预期想要的 0&0* 24位置是乱码

(2)//DH.SetAt(0,'0');
//DH.SetAt(1,char(D+48));
//DH.SetAt(2,'0');
// DH.SetAt(3,nu);
也不行

参考技术A 用format

用itoa
用 法:char *itoa(int value, char *string, int radix);
详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.
参数:
value: 待转化的整数。
radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。
* string: 保存转换后得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
备注:该函数的头文件是"stdlib.h"
参考技术B DH.Format(_T("0%d0%c"),d,nu);这样子试试看!~

我这边调试不是乱码啊?并且值也正确。我用的是VS2005本回答被提问者采纳

以上是关于是不是vc的dll,只要转化出c++builder的lib,c++builder就可以调用dll了的主要内容,如果未能解决你的问题,请参考以下文章

使用vc将C的代码封装成为DLL

c++builder怎么像vc++一样在一个工程里面添加.c和.h文件

在 C++Builder 中使用 C# .NET DLL?

如何在我的 C# Visual Studio 项目中添加 VC++ DLL 作为引用?

vc 如何查看dll文件

为啥我在visual studio 2008 VC++中运行一个Win32控制台应用程序后,弹出一个“没有找到MSVCP90D.dll”?