Ik ben een eenvoudig programmaatje aan het maken wat ik wil gebruiken in mediaportal. Een plugin heeft een lijst met bestanden met extensies nodig om een database op te kunnen bouwen. De bestanden die ik nodig heb voor ScummVM moeten dan echter weer geen extensie hebben.
Om dit op te lossen heb ik nu dus een folder met bestanden met als extensie *.scumm. Dit programmaatje moet als zo'n bestand wordt gebruikt de .scumm extensie er af halen en dat dan aan scummvm doorgeven.
Het probleem is echter dat de parameter in ShellExecute een 'const char*' moet zijn blijkbaar. Ik de variabele daar echter niet naar omgezet en weet niet waarom.
Ik begrijp dat dit waarschijnlijk beter in een .bat bestand kan, maar ik wilde C++ weer en beter onder de knie krijgen.
De code:
De error op const char *game = filename.substr(0, _i);
Om dit op te lossen heb ik nu dus een folder met bestanden met als extensie *.scumm. Dit programmaatje moet als zo'n bestand wordt gebruikt de .scumm extensie er af halen en dat dan aan scummvm doorgeven.
Het probleem is echter dat de parameter in ShellExecute een 'const char*' moet zijn blijkbaar. Ik de variabele daar echter niet naar omgezet en weet niet waarom.
Ik begrijp dat dit waarschijnlijk beter in een .bat bestand kan, maar ik wilde C++ weer en beter onder de knie krijgen.
De code:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #include <cstdlib> #include <iostream> #include <string> #include <windows.h> #include <ShellAPI.h> using namespace std; int main(int argc, char *argv[]) { std::string ext; std::string filename; filename = argv[1]; ext = ".scumm"; int _i = filename.find(ext); const char *game = filename.substr(0, _i); if (_i == string::npos) return EXIT_FAILURE; else { ShellExecute( NULL, "open", "D:\\Program Files\\ScummVM\\scummvm.exe", game, "D:\\Program Files\\ScummVM", SW_MAXIMIZE); } return EXIT_SUCCESS; } |
De error op const char *game = filename.substr(0, _i);
code:
1
| cannot convert `std::basic_string<char, std::char_traits<char>, std::allocator<char> >' to `const char*' in initialization |
[ Voor 0% gewijzigd door een moderator op 30-08-2007 14:43 . Reden: highlighting aangezet ]