IZ_INT CSysUtil::GetExecuteFilePath(char* path, size_t pathBufSize) { // 実行プログラムのフルパスを取得 DWORD result = ::GetModuleFileName( IZ_NULL, path, pathBufSize); VRETURN_VAL(result > 0, 0); return result; }
// 指定した接続先にデータを送信. IZ_INT Udp::sendTo( const void* data, IZ_UINT size, IPv4Endpoint& remoteEp) { IZ_ASSERT(isValidSocket(m_socket)); VRETURN_VAL(remoteEp != m_host, 0); sockaddr_in addr; remoteEp.get(addr); IZ_INT ret = sendto( m_socket, (const char*)data, size, 0, (sockaddr*)&addr, sizeof(addr)); return ret; }
int main(int argc, char* argv[]) { COption option; // オプション解析 if (!option.Analysis(argc, argv)) { _DispUsage(); return INVALID_RET_VAL; } // オプションチェック if (!option.IsValid()) { _DispUsage(); return INVALID_RET_VAL; } IImporter::SetEnableTexIdx(option.idxEnableTex); IImporter::SetShaderName(option.nameShader.c_str()); // インポーター作成 IImporter* importer = IImporter::CreateImporter(option.modelType); #ifdef ENABLE_FBX_IMPORT if (importer == IZ_NULL && option.modelType == ModelType::ModelTypeFBX) { importer = new CFbxImporter(); } #endif // 入力ファイルを開く VRETURN_VAL( importer->Open(option.in.c_str()), INVALID_RET_VAL); static IZ_CHAR tmp[MAX_PATH]; // マテリアル数を取得 IZ_UINT mtrlNum = importer->GetMaterialNum(); if (mtrlNum == 0) { // 何もしない // マテリアルが存在しないことを出力 printf("There is not material in %s\n", option.in.c_str()); } else if (mtrlNum == 1) { VRETURN_VAL( CMtrlExporter::GetInstance().Export( option.out.c_str(), importer, 0), INVALID_RET_VAL); } else { // 出力ファイル名から拡張子を取り除く VRETURN_VAL( option.RemoveExtFromExportFileName(), INVALID_RET_VAL); for (IZ_UINT i = 0; i < mtrlNum; i++) { // 出力ファイル名を作成 sprintf_s(tmp, sizeof(tmp), "%s_%d.mtrl\0", option.out.c_str(), i); VRETURN_VAL( CMtrlExporter::GetInstance().Export( tmp, importer, i), INVALID_RET_VAL); } } return 0; }