有一将bmp转为jpg的dll,无.h,无.lib,居然被我调用成功了,代码附在后面。
这个在普通程序中调用没有问题,可是我是在ActiveX中调用,这就碰上了路径问题。我的ActiveX最后要和这个dll打包成cab,数字签名后发布。
我测试发现(不是用cab,而是两个分开的),在Web上使用时ActiveX找dll居然到桌面上找,我猜可能是IE快捷方式的路径。这样打包后找dll肯定找不到,因为ActiveX和dll都会被下载C:\WINDOWS\Downloaded Program Files路径下。
我想用静态链接应该不会出现路径的问题,但没有.h,连.lib都没有,能实现静态链接吗?
当然,有其它dll或能提供bmp到jpg的类源码也可以,要VC++6的,不要c的和VC++.net的。[email protected]附:动态链接代码
typedef bool(__stdcall CHANGE)(char *,char *);
void CJpeg::BmpToJpeg(CString Bmp, CString Jpeg)
{
HINSTANCE hInst;
CHANGE *pFunc;
hInst = ::LoadLibrary("jpgdll.dll");
pFunc = (CHANGE*)::GetProcAddress(hInst, "BmpToJpg");
pFunc(Bmp.GetBuffer(Bmp.GetLength()), Jpeg.GetBuffer(Jpeg.GetLength()));
Bmp.ReleaseBuffer();
Jpeg.ReleaseBuffer();
::FreeLibrary(hInst);
}
这个在普通程序中调用没有问题,可是我是在ActiveX中调用,这就碰上了路径问题。我的ActiveX最后要和这个dll打包成cab,数字签名后发布。
我测试发现(不是用cab,而是两个分开的),在Web上使用时ActiveX找dll居然到桌面上找,我猜可能是IE快捷方式的路径。这样打包后找dll肯定找不到,因为ActiveX和dll都会被下载C:\WINDOWS\Downloaded Program Files路径下。
我想用静态链接应该不会出现路径的问题,但没有.h,连.lib都没有,能实现静态链接吗?
当然,有其它dll或能提供bmp到jpg的类源码也可以,要VC++6的,不要c的和VC++.net的。[email protected]附:动态链接代码
typedef bool(__stdcall CHANGE)(char *,char *);
void CJpeg::BmpToJpeg(CString Bmp, CString Jpeg)
{
HINSTANCE hInst;
CHANGE *pFunc;
hInst = ::LoadLibrary("jpgdll.dll");
pFunc = (CHANGE*)::GetProcAddress(hInst, "BmpToJpg");
pFunc(Bmp.GetBuffer(Bmp.GetLength()), Jpeg.GetBuffer(Jpeg.GetLength()));
Bmp.ReleaseBuffer();
Jpeg.ReleaseBuffer();
::FreeLibrary(hInst);
}
解决方案 »
- 在VC中,一些指针为什么在构造函数中初始化写成NULL,它有什么意义?
- VC++ 获取网络连接信息
- odbc api访问access数据库问题,高手帮忙
- 带参数的存储过程问题,高手请进!
- 如何删除VS6.0?
- 请问一下如何录制声卡播放出来的声音?100分,查查我发过的问题,都有给分
- 简单问题,但也是急于解决,送分!VC中有值为空(字符、数值)吗? 来者有分
- vc里怎么修改对话框的边框和按钮的样式?
- 有关string table 中(\n...\n...\n)的格式,请帮我解释一下!
- 兄弟们,有没有什么好方法,使木马程序可以突破防火墙。
- 大家新年快乐 !! 散分
- Win32 SDK 对话框程序问题........
bmp.LoadBitmap(IDB_BITMAP1);CImage image;
image.Attach(bmp);image.Save("c:\\aa", ImageFormatJPEG);
晕,就这么简单?CImage是那里的类?我的msdn中怎么查不到?DarknessTM(家里蹲) :
桥接我的dll调用那个dll不是一样有路径问题?我是在Web上用啊。
你在VC6下用过吗?打的补丁几?
D:\Program Files\Microsoft Visual Studio\VC98\ATL\Include
使用这个类,需要gdipuls.dll,2000以上系统似乎都已经有这个dll了,但98没有。另外问个问题,CImage::Save()这个函数,如果是保存到文件的话,第二个参数可以是NULL。
但如果要在内存中处理,也就是保存到IStream*里面的话,第二个参数要怎么取得啊?ImageFormatJPEG认不出来啊?