Prosím o přesunutí do správné diskuze, špatně sem proklikl a již nemohu upravit. Omlouvám se
Příspěvky odeslané z IP adresy 2001:718:1001:700:200:5ef...–
Zdravím, jako začátečník ve VS bych rád požádal o pomoc jestli by byl někdo tak hodný. Jedná se o doplnění existujícího pluginu do hry Unturned. Jedná se o Source code z JailTime https://github.com/noammiz007/Rocket-Plugin-Jail-Time.
Má otázka zní, jak do tohoto kódu přidat podmínku, která upřednostňuje poslání hráče do vězení, který někoho zabil.
Z jiného pluginu vím, že k tomu kdo zabíjí patří "Steamworks.CSteamID murderer". Například death https://github.com/Zamirathe/MashTools/blob/master/DeathAnnounce/DeathAnnounce/DeathAnnounce.cs
Původní JailTime.cs
using Steamworks;
using System;
using System.Collections.Generic;
using UnityEngine;
using Rocket.Unturned.Chat;
using Rocket.API;
using Rocket.Unturned.Events;
using Rocket.Unturned.Player;
using Rocket.API.Collections;
using Rocket.Core.Plugins;
using SDG.Unturned;
using Rocket.Unturned;
using Rocket.Core.Logging;
using System.Linq;
namespace ApokPT.RocketPlugins
{
public class JailTime : RocketPlugin<JailTimeConfiguration>
{
private Dictionary<string, Cell> cells = new Dictionary<string, Cell>();
private Dictionary<string, Sentence> players = new Dictionary<string, Sentence>();
// Singleton
public static JailTime Instance;
//Load
protected override void Load()
{
Instance = this;
Logger.LogWarning(JailTime.Instance.Translate("jailtime_console_display"));
if (JailTime.Instance.Configuration.Instance.Enabled)
{
UnturnedPlayerEvents.OnPlayerRevive += Events_OnPlayerRevive;
U.Events.OnPlayerConnected += Events_OnPlayerConnected;
}
//This function will load cells from configuration.
injectConfiCells();
}
//Rocket Unload.
protected override void Unload()
{
//This function will unload cells from configuration.
uninjectConfiCells();
UnturnedPlayerEvents.OnPlayerRevive -= Events_OnPlayerRevive;
U.Events.OnPlayerConnected -= Events_OnPlayerConnected;
}
//Load cells from configuration file.
private void injectConfiCells()
{
foreach (CellLoc cell in Configuration.Instance.Cells)
{
setJail(null, cell.Name.ToLower(), new Vector3(Convert.ToSingle(cell.X), Convert.ToSingle(cell.Y), Convert.ToSingle(cell.Z)));
}
}
//(Rocket unload) Unload players in jail to last location and flush the dictionaries.
private void uninjectConfiCells()
{
//Should Sentence be removed during Unload...
if (JailTime.Instance.Configuration.Instance.ReleasePlayerOnUnload)
{
List<string> keys = new List<string>(players.Keys);
foreach (string key in keys)
{
removePlayer(null, key);
}
//Flush both dictionaries, and local List<>.
cells.Clear();
players.Clear();
keys.Clear();
}
}
//Permissions (Overridden)
public List<string> Permissions
{
get
{
return new List<string>() {};
}
}
//Events for On Player connected
private void Events_OnPlayerConnected(UnturnedPlayer player)
{
if (player.IsAdmin || player.HasPermission("jail.immune")) return;
if (players.ContainsKey(player.ToString()))
{
if (JailTime.Instance.Configuration.Instance.BanOnReconnect)
{
//removePlayerFromJail(player, players[player.ToString()]);
//players.Remove(player.ToString());
//Send player over to Player Component (JailTimePlayer) to handle ban on reconnect.
//Debug.
Logger.Log("Sending " + player.SteamName + " to ban on reconnect.");
Logger.Log("Ping: " + player.Ping);
JailTimePlayer jailtimeplayer = player.GetComponent<JailTimePlayer>();
jailtimeplayer.SetBan(player);
players.Remove(player.ToString());
}
else
{
if (!(players[player.ToString()].End <= DateTime.Now))
{
movePlayerToJail_OnPlayerRevive_Connect(player, players[player.ToString()].Cell);
UnturnedChat.Say(player, JailTime.Instance.Translate("jailtime_player_back_msg"));
}
}
}
}
//Event for On Player Revive (Death or Suicide).
private void Events_OnPlayerRevive(UnturnedPlayer player, Vector3 position, byte angle)
{
if (player.IsAdmin || player.HasPermission("jail.immune")) return;
if (players.ContainsKey(player.ToString()))
{
movePlayerToJail_OnPlayerRevive_Connect(player, players[player.ToString()].Cell);
UnturnedChat.Say(player, JailTime.Instance.Translate("jailtime_player_back_msg"));
}
}
//This function will handle OnPlayerRevive/Connected to re-strip(if enabled) player and sending back to jail without dupping clothes.
private void movePlayerToJail_OnPlayerRevive_Connect(UnturnedPlayer player, Cell jail)
{
if (Instance.Configuration.Instance.StripInventory)
{
InvClear(player);
}
player.Teleport(jail.Location, player.Rotation);
}
//Fixed Update
public void FixedUpdate()
{
if (this.State == PluginState.Loaded && players != null && players.Count != 0)
{
foreach (KeyValuePair<string, Sentence> pl in players)
{
if (pl.Value.End <= DateTime.Now)
{
try
{
removePlayer(null, pl.Key);
break;
}
catch { }
}
try
{
UnturnedPlayer player = UnturnedPlayer.FromCSteamID(new CSteamID(Convert.ToUInt64(pl.Key)));
if (player != null && Vector3.Distance(player.Position, pl.Value.Cell.Location) > Configuration.Instance.WalkDistance)
{
if (Configuration.Instance.KillInsteadOfTeleport)
{
player.Damage(255, player.Position, EDeathCause.PUNCH, ELimb.SKULL, player.CSteamID);
}
else
{
player.Teleport(pl.Value.Cell.Location, player.Rotation);
}
}
}
catch { }
}
}
}
//Private Methods
//Get cells by name.
private Cell getCellbyName(string jailName)
{
return cells.ContainsKey(jailName) ? cells[jailName] : null;
}
//Get random cell.
private Cell getRandomCell()
{
if (cells.Count >= 0)
{
List<string> keys = new List<string>(cells.Keys);
System.Random rand = new System.Random();
return cells[keys[rand.Next(cells.Count)]];
}
return null;
}
//Player Methods
//Adding a player
internal void addPlayer(IRocketPlayer caller, string playerName, string jailName = "", uint jailTime = 0)
{
Cell jail;
UnturnedPlayer target = UnturnedPlayer.FromName(playerName);
if (jailTime == 0) jailTime = Configuration.Instance.JailTimeInSeconds;
if (target == null)
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_player_notfound", jailName));
return;
}
else if (players.ContainsKey(target.ToString()))
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_player_in_jail", target.CharacterName));
return;
}
else
{
if (target.IsAdmin || target.HasPermission("jail.immune") || target.HasPermission("jail"))
{
UnturnedChat.Say(target, JailTime.Instance.Translate("jailtime_player_immune"));
return;
}
else if (cells.Count == 0)
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_jail_notset", jailName));
return;
}
else if (jailName == "")
{
jail = getRandomCell();
}
else
{
jail = getCellbyName(jailName);
}
if (jail == null)
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_jail_notfound", jailName));
return;
}
players.Add(target.ToString(), new Sentence(jail, jailTime, target.Position));
movePlayerToJail(target, jail);
UnturnedChat.Say(target, JailTime.Instance.Translate("jailtime_player_arrest_msg", jailTime));
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_player_arrested", target.CharacterName, jail.Name));
}
}
//Removing a player
internal void removePlayer(UnturnedPlayer caller, string playerName)
{
UnturnedPlayer target;
try
{
target = UnturnedPlayer.FromCSteamID(new CSteamID(Convert.ToUInt64(playerName)));
}
catch
{
target = UnturnedPlayer.FromName(playerName);
}
if (target != null && players.ContainsKey(target.ToString()))
{
removePlayerFromJail(target, players[target.ToString()]);
UnturnedChat.Say(target, JailTime.Instance.Translate("jailtime_player_release_msg"));
if (caller != null)
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_player_released", target.CharacterName));
players.Remove(target.ToString());
}
else
{
if (caller != null)
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_player_notfound", playerName));
return;
}
}
//List players
internal void listPlayers(IRocketPlayer caller)
{
if (players.Count == 0)
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_player_list_clear"));
return;
}
else
{
string playersString = "";
foreach (KeyValuePair<string, Sentence> player in players)
{
try { playersString += UnturnedPlayer.FromName(player.Key).CharacterName + " (" + player.Value.Cell.Name + "), "; }
catch { }
}
if (playersString != "") playersString = playersString.Remove(playersString.Length - 2) + ".";
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_player_list", playersString));
return;
}
}
// Jail Methods
//Set Jail
internal void setJail(UnturnedPlayer caller, string jailName, Vector3 location)
{
if (caller != null)
{
if (cells.ContainsKey(jailName.ToLower()))
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_jail_exists", jailName));
return;
}
else
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_jail_set", jailName));
}
Configuration.Instance.Cells.Add(new CellLoc(jailName, location.x, location.y, location.z));
Configuration.Save();
}
cells.Add(jailName.ToLower(), new Cell(jailName, location));
}
//Unset Jail
internal void unsetJail(IRocketPlayer caller, string jailName)
{
if (!cells.ContainsKey(jailName.ToLower()))
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_jail_notfound", jailName));
return;
}
else
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_jail_unset", jailName));
cells.Remove(jailName.ToLower());
foreach (CellLoc cell in Configuration.Instance.Cells)
{
if (cell.Name.ToLower() == jailName.ToLower())
{
Configuration.Instance.Cells.Remove(cell);
Configuration.Save();
return;
}
}
}
}
//TP to a cell
internal void teleportToCell(UnturnedPlayer caller, string jailName)
{
if (!cells.ContainsKey(jailName.ToLower()))
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_jail_notfound", jailName));
return;
}
else
{
caller.Teleport(cells[jailName.ToLower()].Location, caller.Rotation);
}
}
//List Jails
internal void listJails(IRocketPlayer caller)
{
if (cells.Count == 0)
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_jail_notset"));
return;
}
else
{
string jailsString = "";
foreach (KeyValuePair<string, Cell> jail in cells)
{
jailsString += jail.Value.Name + ", ";
}
if (jailsString != "") jailsString = jailsString.Remove(jailsString.Length - 2) + ".";
UnturnedChat.Say(caller, Instance.Translate("jailtime_jail_list", jailsString));
return;
}
}
//Arrest Methods//
//Move selected player to jail.
private void movePlayerToJail(UnturnedPlayer player, Cell jail)
{
//If StripWeapons is TRUE, Remove player's inventory.
if (Instance.Configuration.Instance.StripInventory)
{
InvClear(player);
//if GiveClothes is TRUE, jail clothes will be given (to wear).
if (JailTime.Instance.Configuration.Instance.GiveClothes)
{
player.GiveItem(303, 1);
player.GiveItem(304, 1);
}
}
player.Teleport(jail.Location, player.Rotation);
}
//Remove player from jail
private void removePlayerFromJail(UnturnedPlayer player, Sentence sentence)
{
player.Teleport(sentence.Location, player.Rotation);
}
//Method to attempt inventory clear. | Credit doozzik https://github.com/…/DropManager
//Inventory removal works, but if a player has a gun in slots 1&2, the model of said item stays visible.
private void InvClear(UnturnedPlayer player)
{
for (byte page = 0; page < PlayerInventory.PAGES; page++)
{
byte itemCount = player.Player.inventory.getItemCount(page);
for (byte index = 0; index < itemCount; index++)
{
try
{
player.Player.inventory.removeItem(page, index);
index--;
itemCount--;
}
catch (Exception e)
{
Logger.LogWarning(JailTime.Instance.Translate("jailtime_inv_playerInvError") + player.CharacterName);
Logger.LogWarning(JailTime.Instance.Translate("jailtime_inv_fullError") + e.Message);
}
}
}
}
// Translations
public override TranslationList DefaultTranslations
{
get
{
return new TranslationList(){
//Some log outputs.
{"jailtime_console_display", "JailTime by ApokPT. Updated by Lossy. " },
{"jailtime_inv_playerInvError", "JailTime: Cant clear inventory for player. "},
{"jailtime_inv_fullError", "JailTime: Full problem description: "},
//Jail information
{"jailtime_jail_notset","No cells set, please use /jail set [name] first! "},
{"jailtime_jail_notfound","No cell named {0} found! "},
{"jailtime_jail_set","New cell named {0} created where you stand! "},
{"jailtime_jail_exists","Cell named {0} already exists! "},
{"jailtime_jail_unset","Cell named {0} deleted! "},
{"jailtime_jail_list","Jail Cells: {0} "},
//Jail player information.
{"jailtime_player_immune","That player cannot be arrested! "},
{"jailtime_player_in_jail","Player {0} already in jail! "},
{"jailtime_player_arrested","Player {0} was arrested in {1} cell! "},
{"jailtime_player_released","Player {0} released from jail! "},
{"jailtime_player_list","Players: {0} "},
{"jailtime_player_list_clear","Jail cells are getting dusty! "},
{"jailtime_player_notfound","No player found named {0}! "},
{"jailtime_player_arrest_msg","You have been arrested for {0} seconds! "},
{"jailtime_player_release_msg","You have been released! "},
{"jailtime_player_back_msg","Get back in your cell! "},
//Command Help
{"jailtime_help","/jail commands: add, remove, set, unset, list, teleport "},
{"jailtime_help_add","use /jail add <player> <time> <cell> - to arrest a player, if no <cell> uses a random one "},
{"jailtime_help_remove","use /jail remove <player> - to release a player "},
{"jailtime_help_list","use /jail list players or /jail list cells "},
{"jailtime_help_set","use /jail set <cell> - to set a new jail cell "},
{"jailtime_help_unset","use /jail unset <cell> - to delete a jail cell "},
{"jailtime_help_teleport","use /jail teleport <cell> - to teleport to a cell "},
//Bans
{"jailtime_ban","You have been banned for disconnecting while in Jail! "},
{"jailtime_ban_time","You have been banned temporarily for disconnecting while in Jail! "}
};
}
}
}
}
Pokud to chápu správně budu upravovat část z JailTime.cz
//TP to a cell
internal void teleportToCell(UnturnedPlayer caller, string jailName)
{
if (!cells.ContainsKey(jailName.ToLower()))
{
UnturnedChat.Say(caller, JailTime.Instance.Translate("jailtime_jail_notfound", jailName));
return;
}
else
{
caller.Teleport(cells[jailName.ToLower()].Location, caller.Rotation);
}
}
#7 Kit
Ano, chápu, ale používám Oracle datamodeler, který neumožňuje mít stejné nazvy id v tabulkach v konceptuálním modelu (nebo mě to alespoň nejde, když dám stejné "id" v tabulkách, které jsou v relaci tak mi automaticky přidá k jednomu id_2.."), zkusím to ješte potom vyřešit.
U té tabulky hodnoceni, když to budu převádět do relačního modelu tak se mi vytvoří automaticky cizí klíče v tabulce hodnoceni - uzID (id uživatele) a uID (id předmět). Můžu pak tyto dva použít jako uzivatel_id, predmet_id abych nemusel vytvářet dva další?
Zdravím,
Nevíte jak mám v metodě Insert příjmat udaje odeslane z formulare? Mám něco takového ale získám tak akorát prádzné hodnoty
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Insert(string returnUrl, EmployeeViewModel model2, ClientViewModel modelClient)
{
throw new Exception("jmeno = " + modelClient.name + ", prijmeni = " + modelClient.lastname); // tato vyjimka me ukaze vypise prazdny name a prazdny lastname, proste se ty data z formulare neodeslou
View
@model Tuple<EmployeeViewModel, ClientViewModel>
....
@using (Html.BeginForm("Insert", "Client", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
....
dík
Dobrý den,
jsem začátečník v asp.net mvc a koumám jestli je možné předat kontroleru objekt. Uvedu příklad.
Mám stránku kde je detailní výpis zákazníka a je tam odkaz vypsat objednávky zákazníka. Když kliknu na objednávky zákazníka tak bych aby se v novém view vypsaly objednávky zákazníka + někde nahoře jméno, příjmení a telefon zákazníka. Ale zákazníka jsem na předchozím view načetl a nechci ho tedy načítat z db znovu. Je možné předat objekt zákazníka do Controleru?
Zatím předávám všechno pomocí Get metody v odkazu a jiný způsob mně není znám.
Děkuju za radu
Zdravím,
aktuálně řeším problém jak pomocí hromadných operací v MS SQL přestěhovat data z jedné tabulky do tabulky druhé.
Bohužel jsem našel pouze import ze souborů (BULK INSERT).
Máte někdo tušení jestli je možné něco takového u MS SQL použít?
diky, jsem myslel ze to funguje stejne jako pole char
http://en.wikipedia.org/…/Memory_pool Tady ctu, ze MemoryPool je z najakeho duvodu rychlejsi nez malloc a operatory new. Rekl by mi ale nekdo, jestli je rychlejsi i v pripade, ze pouzivam vlakna a ty se budou v tom vlastnorucne napsanym memory pool blokovat? Mozna ze pouzivat memoruy pool je rychlejsi v pripade jednovláknové aplikace, ale je to pak i rychlejsi i ve vicevlaknovych aplikaci? Potrebuju se v ramci te bakalarky nejak obhajit ze to tam proste nemuzu udelat lip hernajs
KIIV: jde prave o to, ze teoreticky, v pripade cteni ze by se za normalni implementcxe nemuselo nic zamykat - jenom se cte a to se navzajem neovlivuje. Jenomze tady to takhle neni. Vy znate nejaky duvod, proc pri implementaci stromu pouzivat vlastni cache, misto abyste nechal C++ aby si organizovalo pamet samo? Napriklad je tam taky MemoryPool - kdyz se vytvari nejake promenne, nevytvari se normalne ale berou se z te MemoryPool. Jestli mi rozumite, tohle vsechno jsou veci, ktere ten paralelismus brzdi, protoze tam musim vsude strkat kriticke sekce. Vubec nechapu proc to takhle komplikovane maji udelane a navic se tam pak spatne dela paralelismus.
Vlastne, davam to sem proto, ze tak jak tomu rozumim se mi to zda PODIVNE, ale ze tu prispiva treba nejaky dobry programator se zkusenostmi co rekne, ze se to tak treba musi delat z toho a onoho duvodu...nevim z jakeho, jsem jen student :-)
Lidi co si o tom myslite, dostal jsem za ukol do existujici implementace databazove aplikace, ktera umi mimojine cist data do R-stromu, udelat paralelismus pro vkladani a dotazovani na ten R-strom. Vyvijelo to par ucitelu databazistu z katedry informatiky. Nedari se mi to tim paralelismem poradne zrychlit a ted jsem tak premyslel nad tim, jak bych to cele napsal ja a trochu se divim.
Kdyz chci implementovat R-strom, tak to jako jakykoliv jiny strom funguje tak, ze znam vlastne jen korenovy prvek toho stromu. Ten obsahuje odkazy na potomky. Takto tim stromem prochazim. Nikde by tam nemelo dochazet k zadne kolizi a nemusim v prubehu mechanizmu iterace pouzivat zadne kriticke sekce, kdyz je to dobře (resp. normálně) udělané.
Ale v tomhle pripade to tak neni. nechapu proc, ale vsechny uzly stromu spravuje jedina sdilena trida - jakasi cache pro uzly. Kdyz se pozaduje nejaky uzel, musi se k nemu pres tuhle tridu. Tu jsem musel celou osetrit kritickyma sekcema. A to neni vsechno. Aplikace si zaznamenava do sdilene tridy taky ruzne statistiky a to vse V PRUBEHU ITERACE STROMU (takze dalsi kriticke sekce) mimoto pouziva taky sdileny MemoryPool, ktery krome toho ze nefunguje moc dobre, musi byt zase osetreny kritickyma sekcema takze soubeh zase zhorsuje. Cela aplikace je dost slozita na to, abych ji mohl/chtel pochopit a menit mechanismus jak funguje, protoze bych to musel cele prekopat.
Vysledek je, ze ve vice vlaknech jsou dotazy na prvky v R-stromu rychlejsi cca jen o 10-30% (na serverovem procesoru co ma 20 jader), vic se to nehne, protoze se to porad blokuje.
Mam trochu obavy z toho, co rekne ucitel na to, ze to je o tak malo rychlejsi. Ale zase si rikam, ze kdyz to maji takhle napsane, tak pro prece nemuzou nic vic cekat
Co si myslite?
Dobrý den,
chtěl bych se zeptat zda mi je někdo schopen poradit v problematice tvoření (install shield) ve Visualku? V krátkosti se jedná o takový problém, že při zvolení adresáře kdekoliv jinam, než C:\Program Files se aplikace nainstaluje správně a funguje. Při adresáři C:\Program Files se, ale aplikace sice nainstaluje, ale nerozjede (program přestal pracovat). Děkuji za případné rady
Zdravím , rozšiřuji již rozdělaný doplněk do MS word o funkci přidávat nové skupiny (ribbon groups) a v nich ribbonmenu za běhu programu v okne editace. Konfigurace se z tohoto okna zapisuje do XML, a při zapnuti wordu, jsou tyto skupiny a menu z XML dynamicky načítány v konstruktoru RIbbonu(jediné místo kde je to možné). Boužel, jelikož po načtení ribbonu je kolekce těchto skupin nastavena automaticky jako readonly, nelze nove přidané skupiny do XML přidat do ribbontabu a používat hned, ale je třeba word vypnout a znovu zapnout což by ovšem bylo celkem nežádoucí. Nevíte o nějakém způsobu jak přidávat skupiny za běhu a nebo znovu načíst ribbon zavoláním konstruktoru?
Prosím potřeboval bych pomoct s těmito maticemi. Potřeboval bych spočítat inverzní matici. Díky moc. :). A=
3 -2 1
2 0 -1
1 -3 3
Potřebuju poradit. načítám ze souboru pomocí zdrojáku co sem tu našel a chtěl bych pak slovo po slově vytisknout a nastavit u každého slova šířku buňky 10 pomocí setw(10) Ale nějak nevím jak to udělat, protože načítám písmenko po písmenku. Jde to nějak ohraničit, Třeba když narazím na mezeru (konec slova) tak že to bude konec buňky ?
Co je to prosimtě typ "auto"? V mainu ve 4. řádku? Visual Studio mi červeně podtrhlo for(auto a : v)cout << a << ", "; (podtžené jsou: "a", ":", ")").
U "a" to píše: Error: cannot deduce 'auto' type (initializer required),
u ":" to píše: Error: Expected a ';'
u ")" to píše: Error: expected an expression
Potřeboval bych hlavně tu část kódu, kde probíhá součet zadaných binárních čísel. Děkuji
Prosím, potřeboval bych program, nebo aspoň část programu, který sečte mnou zadané binární čísla. Výsledek opět bude v binární podobě. Díky za pomoc
aha, tak jak teda načtu do proměnné string text hodnotu z textBoxu1?
Dělám to přes windows Form v c++, a já právě nevím co napsat do té události onClick :D to je ten můj problém :D
Zdravím, potřeboval bych poradit. Už delší dobu bojuju s načítáním textu z textBoxu do řetězce.
Načíst číslo z textBoxu jsem dokázal. Do proměné double jsem načetl hodnotu pomocí System::Convert::ToDouble(textBox1->Text)
Jenže si nevím rady jak načíst do proměné řetězec. Pokaždé mě to vyhodí chybu, že nelze překonvertovat String^ do jednoduchého stringu.
Když si tedy vytvořím proměnou String^ a načtu to do ní, tak pak ji nelze vypsat do labelu.
A mohl by mě někdo upřesnit rozdíl mezi těmito stringy? Jsem nováček v C/C++
Nikde jsem nenašel řešení mého problému, které by opravdu fungovalo.
Všem děkuji za rady
Zdravím, podle názvu vlákna jsem tady už podobná témata našel, ale ani v jednom nebyla odpověď na otázku: Nikdy jsem neprogramoval (nepočítám pár hodin Delphi na VŠ :) ) a potřebuji vědět, který z výše uvedených jazyků by se nejvíce hodil pro mou potřebu...například dostanete do ruky pohybovou jednotku modulárního robotu, ve které je motor s převodovkou a snímač natočení + ´´nějaka´´ řídicí deska. Tato jednotka se připojí k PC například pomocí CAN a pomocí software od výrobce si s ní můžete různě natáčet, měnit rychlosti atd. Nicméně tento software je jen pro odladění, ale není určen pro automatické řízení. Tento software si chci naprogramovat....?
Dále, pokud jsem správně pochopil, tak knihovna např .dll je ta část software, která určuje jakým způsobem se jednotlivá část (opět např. pohybová jednotka) řídí. Takže po propojení s programem bych měl být schopen danou jednotku řídit pomocí mého vlastního software? Případně je složité takovou knihovnu vytvořit? A jaký jazyk bych se měl naučit, pokud bych ji skutečně chtěl vytvořit?
Poz. C# jsem zkoušel a podle názoru začátečníka je jednoduchý. Nicméně když jsem zkoušel C tak je pro mě neskutečně složité :)
Uff...pokud se v něčem pletu, tak mě prosím opravte.
Děkuji