3DMax Plugin - Debug 3dsmax模型导出插件

以前调试3dsmax的模型导出插件总是很头疼,因为3dsmax的插件是在启动的时候加载进去,在运行中是无法卸载的,这样每一次修改都得重启3dsmax,而且3dsmax的启动时间还特别长,很是郁闷.昨天晚上没事逛书店,偶然发现一本书在讲3dsmax的导出插件,提到了关于调试的一个小技巧,欣喜若狂,立马回家试验了一下,果然很爽.
       其实很简单,就是再写一个dll,实际的操作都在这个dll里面,每一次导出动作都将实时的加载这个dll,导出完毕再卸载这个dll文件,这样就不用每次都重启3dsmax而可以实时的更新了.

 
简单的例子:
extern "C"
{
    int Exporter( void );
     typedef int(*CallBackExporter)( const TCHAR *name, ExpInterface *ei, Interface *i,

                        BOOL suppressPrompts, DWORD options );
}
//+-------------&-------------
//+---------------------------&------------------- ------
int IGameExporter::DoExport( const TCHAR *name, ExpInterface *ei, Interface *i, BOOL suppressPrompts, DWORD options )
{
     HMODULE hModule;
     hModule = ::LoadLibraryEx( "plugins/BMLExporter.dll", NULL, 0 );
     if( hModule == NULL )
     {
           hModule = ::LoadLibraryEx( "BMLExporter.dll", NULL, 0 );
           if( hModule == NULL )
            {
                 MessageBox( NULL, "加载模块BMLExporter.dll失败.", "", 0 );
                 return 0; 
            } 
      }

      CallBackExporter pfnExporter = NULL;
      pfnExporter = (CallBackExporter)GetProcAddress( hModule, "Exporter" );
      if( pfnExporter == NULL )
            return FALSE;
      int nRet = pfnExporter( name, ei, i, suppressPrompts, options );
     ::FreeLibrary( hModule );
     return nRet;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值