好汉救急!(附几行代码,关于FTP功能的) - 调用Debug版本的DLL提示"Debug Assertion Failed!...",发布Release版本的DLL提示LNK4089错误.

rodgerwu 2007-07-14 09:32:27
代码如下

----StdAfx.h---------------------------------------------
...
#include <afxinet.h>
//(因提示重复引用, 故没有引用windows.h)
...

----TestFTP.cpp------------------------------------------
#include "stdafx.h"

CInternetSession g_FTPsession;
CFtpConnection* g_FTPpConn;

__declspec(dllexport) int __stdcall FTP_Open( const char *ip, const char *user, const char *passwd )
{
if(g_FTPpConn != NULL){
FTP_Close();
}

try{
g_FTPpConn = g_FTPsession.GetFtpConnection(ip, user, passwd);
}catch(...){
return -1;
}
if( g_FTPpConn != NULL )
return 1;

return GetLastError();
}

Question #1 - 这是作一个FTP功能的DLL封装, Release版本的DLL函数被调用时不出错,但编译时提示如下, 如何解决? ( 20分 )
LINK : warning LNK4089: all references to "ADVAPI32.dll" discarded by /OPT:REF
LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF
LINK : warning LNK4089: all references to "comdlg32.dll" discarded by /OPT:REF

Question #2 - 编译Debug版本的DLL时无出错提示, 但调用该函数时弹出错误提示"Debug Assertion Failed!...", 如果将函数体中的内容comment out, 然后只写一行"return 100", 则在调用时不弹出错误, 这问题如何解决? ( 30分 )
...全文
261 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rodgerwu 2007-09-16
  • 打赏
  • 举报
回复
够健全造成.
rodgerwu 2007-09-16
  • 打赏
  • 举报
回复
解决了, 这样的Warning警告可以不用理睬. 原因是代码在define方面不
rzsheng 2007-08-23
  • 打赏
  • 举报
回复
问题解决了吗?

我关心第一个问题,跟你一样的困惑,
luohongming 2007-07-14
  • 打赏
  • 举报
回复
CFtpConnection* g_FTPpConn 没有初始化。CFtpConnection* g_FTPpConn = NULL;
zyyoung 2007-07-14
  • 打赏
  • 举报
回复
初始化有问题,msdn查查CInternetSession CFtpConnection的构造
rodgerwu 2007-07-14
  • 打赏
  • 举报
回复
或各位直接试试以下的代码, 看看有什么问题?
#include <afxinet.h>
#include <iostream>
using namespace std;

int main( void )
{
CInternetSession g_FTPsession;
CFtpConnection* g_FTPpConn;
g_FTPpConn = NULL;

const char *ip = "192.168.1.197";
const char *user = "cis";
const char *passwd = "cis";

try{
g_FTPpConn = g_FTPsession.GetFtpConnection(ip, user, passwd);
}catch(...){
cout << "return -1" << endl;
getchar();
return -1;
}
if( g_FTPpConn != NULL )
{
cout << "it's OK!" << endl;
getchar();
return 1;
}

getchar();
return GetLastError();
}
rodgerwu 2007-07-14
  • 打赏
  • 举报
回复
楼上这位朋友, 你指出的很对, g_FTPpConn = NULL我复制到这帖子时漏了, 但即使加上, 还是解决不了问题, 求求你们再帮我看看呀, 不甚感激.

我的QQ是128484575

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧