您的位置:首页 > 编程语言 > VB

[VB.NET]求教:vb.net调用MFC DLL问题

2008-12-28 13:58 381 查看



<script type="text/javascript"><!--
google_ad_client = "pub-8333940862668978";
/* 728x90, 创建于 08-11-30 */
google_ad_slot = "4485230109";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

求教:vb.net调用MFC DLL问题
vb.net:
Public Declare Function fx Lib "Analyze.dll " Alias "fenxi " (ByVal szFileName As String, ByVal appPath As String) As Integer
调用:
result = fx(pathName, foder)

错误:
未处理的“System.NullReferenceException”类型的异常

其他信息: 未将对象引用设置到对象的实例

在线等待.

__________________________________________________________________________
QQ:331069386
__________________________________________________________________________
vc提供的接口类型有问题吧
__________________________________________________________________________
CathySun118(斯年) :
兄弟,能不能说得详细点?
__________________________________________________________________________
BOOL CAnalyzeApp::fenxi(CString szFileName,CString appPath)
{
//_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
BOOL result1;
LONG rnum;
rnum = 0;
AfxMessageBox( "start ");
CAvi1* Avi1=new CAvi1();
result1 = Avi1-> ExtractAVIFrames(szFileName,appPath);
AfxMessageBox( "start1 ");
if (result1 == FALSE)
{
AfxMessageBox(szFileName + "视频文件有损坏! ");
//当做无人处理
return FALSE;
}

AfxMessageBox( "234 ");
Avi1-> OnDetectMinus(appPath);
rnum = Avi1-> lReturnNum;
if (rnum <= 10 )
{
//无人
return FALSE;
}
else
{
//有人
return TRUE;
}

AfxMessageBox( "ok ");
delete Avi1;
return TRUE;
}
__________________________________________________________________________
这是vc里的代码
__________________________________________________________________________
dll 里 接口函数应定义成
_desc export BOOL CAnalyzeApp::fenxi
我记得是这样。
具体写法网上搜就行
__________________________________________________________________________
不好意思,发错了,请高手帮忙啊
int CAnalyzeApp::fenxi(CString szFileName,CString appPath)
{
//_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
BOOL result1;
LONG rnum;
rnum = 0;
AfxMessageBox( "start ");
CAvi1* Avi1=new CAvi1();
result1 = Avi1-> ExtractAVIFrames(szFileName,appPath);
AfxMessageBox( "start1 ");
if (result1 == FALSE)
{
AfxMessageBox(szFileName + "视频文件有损坏! ");
//当做无人处理
return 0;
}

AfxMessageBox( "234 ");
Avi1-> OnDetectMinus(appPath);
rnum = Avi1-> lReturnNum;
if (rnum <= 10 )
{
//无人
return 0;
}
else
{
//有人
return 1;
}

//AfxMessageBox( "ok ");
//delete Avi1;
//return TRUE;
}
__________________________________________________________________________
CAvi1* Avi1=new CAvi1();
result1 = Avi1-> ExtractAVIFrames(szFileName,appPath);
这里错了?
__________________________________________________________________________
你直接用非托管方法吧
__________________________________________________________________________
兄弟,能不能说得详细点?

谁有这方面的开发经验,给指条明路啊
__________________________________________________________________________
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vb.net mfc dll avi leak integer