Rövid útmutató: Többeszközes beszélgetés

Ebben a rövid útmutatóban megtudhatja, hogyan hozhat létre új többeszközes beszélgetést a Speech SDK használatával fordítási támogatással, valamint hogyan csatlakozhat egy meglévő beszélgetéshez.

Feljegyzés

A Java- és JavaScript-, Objective-C- és Swift-alapú Speech SDK támogatja a többeszközes beszélgetéseket, de itt még nem tartalmaztunk útmutatót.

A GitHubon megtekintheti vagy letöltheti az összes Speech SDK C#-mintát .

Előfeltételek

Az első lépések előtt győződjön meg arról, hogy:

Mintakód hozzáadása

  1. Nyissa meg Program.cs, és cserélje le az összes benne lévő kódot a következő kódra:

    using Microsoft.CognitiveServices.Speech;
    using Microsoft.CognitiveServices.Speech.Audio;
    using Microsoft.CognitiveServices.Speech.Transcription;
    using System;
    using System.Threading.Tasks;
    
    namespace HelloWorld
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                await CreateConversationAsync();
            }
    
            static async Task CreateConversationAsync()
            {
                // Replace these values with the details of your Cognitive Speech subscription
                string subscriptionKey = "YourSubscriptionKey";
    
                // Replace below with your region identifier from here: https://aka.ms/speech/sdkregion
                string region = "YourServiceRegion";
    
                // Sets source and target languages.
                // Replace with the languages of your choice, from list found here: https://aka.ms/speech/sttt-languages
                string fromLanguage = "en-US";
                string toLanguage = "de";
    
                // Set this to the display name you want for the conversation host
                string displayName = "The host";
    
                // Create the task completion source that will be used to wait until the user presses Ctrl + C
                var completionSource = new TaskCompletionSource<bool>();
    
                // Register to listen for Ctrl + C
                Console.CancelKeyPress += (s, e) =>
                {
                    completionSource.TrySetResult(true);
                    e.Cancel = true; // don't terminate the current process
                };
    
                // Create an instance of the speech translation config
                var config = SpeechTranslationConfig.FromSubscription(subscriptionKey, region);
                config.SpeechRecognitionLanguage = fromLanguage;
                config.AddTargetLanguage(toLanguage);
    
                // Create the conversation
                using (var conversation = await Conversation.CreateConversationAsync(config).ConfigureAwait(false))
                {
                    // Start the conversation so the host user and others can join
                    await conversation.StartConversationAsync().ConfigureAwait(false);
    
                    // Get the conversation ID. It will be up to your scenario to determine how this is shared with other participants.
                    string conversationId = conversation.ConversationId;
                    Console.WriteLine($"Created '{conversationId}' conversation");
    
                    // At this point, you can use the conversation object to manage the conversation. 
                    // For example, to mute everyone else in the room you can call this method:
                    await conversation.MuteAllParticipantsAsync().ConfigureAwait(false);
    
                    // Configure which audio source you want to use. If you are using a text only language, you 
                    // can use the other overload of the constructor that takes no arguments
                    var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
                    using (var conversationTranslator = new ConversationTranslator(audioConfig))
                    {
                        // You should connect all the event handlers you need at this point
                        conversationTranslator.SessionStarted += (s, e) =>
                        {
                            Console.WriteLine($"Session started: {e.SessionId}");
                        };
                        conversationTranslator.SessionStopped += (s, e) =>
                        {
                            Console.WriteLine($"Session stopped: {e.SessionId}");
                        };
                        conversationTranslator.Canceled += (s, e) =>
                        {
                            switch (e.Reason)
                            {
                                case CancellationReason.EndOfStream:
                                    Console.WriteLine($"End of audio reached");
                                    break;
    
                                case CancellationReason.Error:
                                    Console.WriteLine($"Canceled due to error. {e.ErrorCode}: {e.ErrorDetails}");
                                    break;
                            }
                        };
                        conversationTranslator.ConversationExpiration += (s, e) =>
                        {
                            Console.WriteLine($"Conversation will expire in {e.ExpirationTime.TotalMinutes} minutes");
                        };
                        conversationTranslator.ParticipantsChanged += (s, e) =>
                        {
                            Console.Write("The following participant(s) have ");
                            switch (e.Reason)
                            {
                                case ParticipantChangedReason.JoinedConversation:
                                    Console.Write("joined");
                                    break;
    
                                case ParticipantChangedReason.LeftConversation:
                                    Console.Write("left");
                                    break;
    
                                case ParticipantChangedReason.Updated:
                                    Console.Write("been updated");
                                    break;
                            }
    
                            Console.WriteLine(":");
    
                            foreach (var participant in e.Participants)
                            {
                                Console.WriteLine($"\t{participant.DisplayName}");
                            }
                        };
                        conversationTranslator.TextMessageReceived += (s, e) =>
                        {
                            Console.WriteLine($"Received an instant message from '{e.Result.ParticipantId}': '{e.Result.Text}'");
                            foreach (var entry in e.Result.Translations)
                            {
                                Console.WriteLine($"\tTranslated into '{entry.Key}': '{entry.Value}'");
                            }
                        };
                        conversationTranslator.Transcribed += (s, e) =>
                        {
                            Console.WriteLine($"Received a transcription from '{e.Result.ParticipantId}': '{e.Result.Text}'");
                            foreach (var entry in e.Result.Translations)
                            {
                                Console.WriteLine($"\tTranslated into '{entry.Key}': '{entry.Value}'");
                            }
                        };
                        conversationTranslator.Transcribing += (s, e) =>
                        {
                            Console.WriteLine($"Received a partial transcription from '{e.Result.ParticipantId}': '{e.Result.Text}'");
                            foreach (var entry in e.Result.Translations)
                            {
                                Console.WriteLine($"\tTranslated into '{entry.Key}': '{entry.Value}'");
                            }
                        };
    
                        // Enter the conversation to start receiving events
                        await conversationTranslator.JoinConversationAsync(conversation, displayName).ConfigureAwait(false);
    
                        // You can now send an instant message to all other participants in the room
                        await conversationTranslator.SendTextMessageAsync("The instant message to send").ConfigureAwait(false);
    
                        // If specified a speech to text language, you can start capturing audio
                        await conversationTranslator.StartTranscribingAsync().ConfigureAwait(false);
                        Console.WriteLine("Started transcribing. Press Ctrl + c to stop");
    
                        // At this point, you should start receiving transcriptions for what you are saying using the default microphone. Press Ctrl+c to stop audio capture
                        await completionSource.Task.ConfigureAwait(false);
    
                        // Stop audio capture
                        await conversationTranslator.StopTranscribingAsync().ConfigureAwait(false);
    
                        // Leave the conversation. After this you will no longer receive events
                        await conversationTranslator.LeaveConversationAsync().ConfigureAwait(false);
                    }
    
                    // End the conversation
                    await conversation.EndConversationAsync().ConfigureAwait(false);
    
                    // Delete the conversation. Any other participants that are still in the conversation will be removed
                    await conversation.DeleteConversationAsync().ConfigureAwait(false);
                }
            }
        }
    }
    
  2. Ugyanabban a fájlban cserélje le a sztringet YourSubscriptionKey a Cognitive Speech előfizetési kulcsára.

  3. Cserélje le a sztringet YourServiceRegion az előfizetéshez társított régióra .

  4. A menüsávon válassza az Összes fájl>mentése lehetőséget.

Új beszélgetés létrehozásához hozza létre és futtassa az alkalmazást

  1. A menüsávon válassza a Build Solution (Build solution)>lehetőséget az alkalmazás létrehozásához. A kód fordításának hiba nélkül végbe kell mennie.

  2. Válassza a Hibakeresés indítása hibakeresés>lehetőséget (vagy nyomja le az F5 billentyűt) a helloworld alkalmazás elindításához.

  3. Amint megjelenik az Started transcribing üzenet, elkezdhet beszélni. A beszéd során megjelennek az átiratok.

    • Ha megosztja a beszélgetés kódját a többiekkel, és csatlakoznak a beszélgetéshez, az átirataikat is látni fogja.
  4. Miután befejezte a beszélgetést, nyomja le a Ctrl+C billentyűkombinációt a hangrögzítés leállításához, majd a beszélgetés befejezéséhez.

Az alkalmazás létrehozása és futtatása meglévő beszélgetéshez való csatlakozáshoz

  1. Másolja és illessze be a következő függvényt a Program.cs:

    static async Task JoinConversationAsync(string conversationId)
    {
        // Set this to the display name you want for the participant
        string displayName = "participant";
    
        // Set the speech to text, or text language you want to use
        string language = "en-US";
    
        // Create the task completion source that will be used to wait until the user presses Ctrl + c
        var completionSource = new TaskCompletionSource<bool>();
    
        // Register to listen for Ctrl+C
        Console.CancelKeyPress += (s, e) =>
        {
            completionSource.TrySetResult(true);
            e.Cancel = true; // don't terminate the current process
        };
    
        // As a participant, you don't need to specify any subscription key, or region. You can directly create
        // the conversation translator object
        var audioConfig = AudioConfig.FromDefaultMicrophoneInput();
        using (var conversationTranslator = new ConversationTranslator(audioConfig))
        {
            // Register for any events you are interested here. For now let's just register for
            // transcription, and instant message events
            conversationTranslator.TextMessageReceived += (s, e) =>
            {
                Console.WriteLine($"Received an instant message from '{e.Result.ParticipantId}': '{e.Result.Text}'");
                foreach (var entry in e.Result.Translations)
                {
                    Console.WriteLine($"\tTranslated into '{entry.Key}': '{entry.Value}'");
                }
            };
            conversationTranslator.Transcribed += (s, e) =>
            {
                Console.WriteLine($"Received a transcription from '{e.Result.ParticipantId}': '{e.Result.Text}'");
                foreach (var entry in e.Result.Translations)
                {
                    Console.WriteLine($"\tTranslated into '{entry.Key}': '{entry.Value}'");
                }
            };
            conversationTranslator.Transcribing += (s, e) =>
            {
                Console.WriteLine($"Received a partial transcription from '{e.Result.ParticipantId}': '{e.Result.Text}'");
                foreach (var entry in e.Result.Translations)
                {
                    Console.WriteLine($"\tTranslated into '{entry.Key}': '{entry.Value}'");
                }
            };
    
            // To start receiving events, you will need to join the conversation
            await conversationTranslator.JoinConversationAsync(conversationId, displayName, language).ConfigureAwait(false);
    
            // You can now send an instant message
            await conversationTranslator.SendTextMessageAsync("Message from participant").ConfigureAwait(false);
    
            // Start capturing audio if you specified a speech to text language
            await conversationTranslator.StartTranscribingAsync().ConfigureAwait(false);
            Console.WriteLine("Started transcribing. Press Ctrl-C to stop");
    
            // At this point, you should start receiving transcriptions for what you are saying using
            // the default microphone. Press Ctrl+C to stop audio capture
            await completionSource.Task.ConfigureAwait(false);
    
            // Stop audio capture
            await conversationTranslator.StopTranscribingAsync().ConfigureAwait(false);
    
            // Leave the conversation. You will stop receiving events after this
            await conversationTranslator.LeaveConversationAsync().ConfigureAwait(false);
        }
    }
    
  2. Cserélje le CreateConversationAsync(); a függvényben a public static async Task Main(string[] args) következőre:

    // Set this to the conversation you want to join
    JoinConversationAsync("YourConversationId");
    
  1. Létre kell hoznia egy beszélgetést, amelyhez csatlakozhat:

    1. Indítsa el a böngészőt, és lépjen a következőre: https://translator.microsoft.com.
    2. Válassza a "Beszélgetés indítása" lehetőséget.
    3. Jelentkezzen be a rendelkezésre álló lehetőségek bármelyikével.
    4. Írjon be egy nevet (például a gazdagépet).
    5. Válasszon ki egy nyelvet (pl. angol).
    6. Válassza az Enter gombot.
    7. Jegyezze fel a lap tetején található beszélgetési kódot.

    Tipp.

    Ha a weblap másolás gombját használja, először távolítsa el a translate.it/ gombot. Csak az 5 karakteres beszélgetésazonosítóra van szüksége (például: ABCDE).

  1. Lépjen vissza a Visual Studióba, és cserélje le a sztringet YourConversationId az előző lépésben létrehozott beszélgetési azonosítóra.

  2. A menüsávon válassza a Build Solution (Build solution)>lehetőséget az alkalmazás létrehozásához. A kód fordításának hiba nélkül végbe kell mennie.

  3. Válassza a Hibakeresés indítása hibakeresés>lehetőséget (vagy nyomja le az F5 billentyűt) a helloworld alkalmazás elindításához.

  4. Amint megjelenik az Started transcribing üzenet, elkezdhet beszélni. A beszéd során megjelennek az átiratok.

    • Ha visszalép a böngészőbe, akkor az átiratok a beszéd közben is megjelennek.
  5. Miután befejezte a beszélgetést, nyomja le a Ctrl+C billentyűkombinációt a hangrögzítés leállításához, majd a beszélgetés befejezéséhez.

  6. Lépjen vissza a böngészőbe, és lépjen ki a beszélgetésből a jobb felső sarokban található kilépési gombbal.

Következő lépések

A GitHubon megtekintheti vagy letöltheti az összes Speech SDK C++ mintát .

Előfeltételek

Az első lépések előtt győződjön meg arról, hogy:

Mintakód hozzáadása

  1. A Visual Studióban nyissa meg a forrásfájlt helloworld.cpp.

  2. Cserélje le az összes kódot a következő kódrészletre:

    #include "pch.h"
    
    #define WIN32_LEAN_AND_MEAN
    #include <Windows.h>
    
    #include <iostream>
    #include <thread>
    #include <future>
    #include <string>
    #include <speechapi_cxx.h>
    
    using namespace std::chrono_literals;
    using namespace Microsoft::CognitiveServices::Speech;
    using namespace Microsoft::CognitiveServices::Speech::Audio;
    using namespace Microsoft::CognitiveServices::Speech::Transcription;
    
    // Create a promise we will set when the user presses Ctrl-C
    std::promise<bool> promise;
    // Create the future we will use to wait for the promise to be fulfilled
    std::future<bool> future = promise.get_future();
    
    void StartNewConversation()
    {
        // Set these
        std::string subscriptionKey("YourSubscriptionKey");
    
        // Replace below with your own region identifier from here: https://aka.ms/speech/sdkregion
        std::string region("YourServiceRegion");
    
        std::string speechLanguage("en-US");
    
        // Create the conversation object you'll need to manage the conversation
        auto speechConfig = SpeechConfig::FromSubscription(subscriptionKey, region);
        speechConfig->SetSpeechRecognitionLanguage(speechLanguage);
        auto conversation = Conversation::CreateConversationAsync(speechConfig).get();
    
        // Start the conversation so you and others can join
        conversation->StartConversationAsync().get();
    
        // Get the conversation ID. It will be up to your scenario to determine how this is shared with other participants.
        std::cout << "Created conversation: " << conversation->GetConversationId() << std::endl;
    
        // You can now call various commands to manage the room. For example:
        conversation->MuteAllParticipantsAsync().get();
    
        // Create the conversation translator you'll need to send audio, send IMs, and receive conversation events
        auto audioConfig = AudioConfig::FromDefaultMicrophoneInput();
        auto conversationTranslator = ConversationTranslator::FromConfig(audioConfig);
    
        // Add any event handlers
        conversationTranslator->SessionStarted += [](const SessionEventArgs& args)
        {
            std::cout << "Session started " << args.SessionId << std::endl;
        };
        conversationTranslator->SessionStopped += [](const SessionEventArgs& args)
        {
            std::cout << "Session stopped " << args.SessionId << std::endl;
        };
        conversationTranslator->Canceled += [](const ConversationTranslationCanceledEventArgs& args)
        {
            switch (args.Reason)
            {
                case CancellationReason::EndOfStream:
                    std::cout << "End of audio reached" << std::endl;
                    break;
    
                case CancellationReason::Error:
                    std::cout << "Canceled due to error. " << (long)args.ErrorCode << ": " << args.ErrorDetails << std::endl;
                    break;
            }
        };
        conversationTranslator->ConversationExpiration += [](const ConversationExpirationEventArgs& args)
        {
            std::cout << "Conversation will expire in " << args.ExpirationTime.count() << " minutes" << std::endl;
        };
        conversationTranslator->ParticipantsChanged += [](const ConversationParticipantsChangedEventArgs& args)
        {
            std::cout << "The following participant(s) have ";
            switch (args.Reason)
            {
                case ParticipantChangedReason::JoinedConversation:
                    std::cout << "joined";
                    break;
    
                case ParticipantChangedReason::LeftConversation:
                    std::cout << "left";
                    break;
    
                case ParticipantChangedReason::Updated:
                    std::cout << "been updated";
                    break;
            }
    
            std::cout << ":" << std::endl;
    
            for(std::shared_ptr<Participant> participant : args.Participants)
            {
                std::cout << "\t" << participant->DisplayName << std::endl;
            }
        };
        conversationTranslator->Transcribing += [](const ConversationTranslationEventArgs& args)
        {
            std::cout << "Received a partial transcription from " << args.Result->ParticipantId << ": " << args.Result->Text << std::endl;
            for (const auto& entry : args.Result->Translations)
            {
                std::cout << "\t" << entry.first << ": " << entry.second << std::endl;
            }
        };
        conversationTranslator->Transcribed += [](const ConversationTranslationEventArgs& args)
        {
            std::cout << "Received a transcription from " << args.Result->ParticipantId << ": " << args.Result->Text << std::endl;
            for (const auto& entry : args.Result->Translations)
            {
                std::cout << "\t" << entry.first << ": " << entry.second << std::endl;
            }
        };
        conversationTranslator->TextMessageReceived += [](const ConversationTranslationEventArgs& args)
        {
            std::cout << "Received an instant message from " << args.Result->ParticipantId << ": " << args.Result->Text << std::endl;
            for (const auto& entry : args.Result->Translations)
            {
                std::cout << "\t" << entry.first << ": " << entry.second << std::endl;
            }
        };
    
        // Join the conversation so you can start receiving events
        conversationTranslator->JoinConversationAsync(conversation, "Test Host").get();
    
        // Send an instant message
        conversationTranslator->SendTextMessageAsync("This is a short test message").get();
    
        // Start sending audio
        conversationTranslator->StartTranscribingAsync().get();
        std::cout << "Started transcribing. Press Ctrl + C to stop" << std::endl;
        future.get(); // wait for Ctrl - C to be pressed
    
        // Stop audio capture
        conversationTranslator->StopTranscribingAsync().get();
    
        // Leave the conversation. You will stop receiving events
        conversationTranslator->LeaveConversationAsync().get();
    
        // Once you are done, remember to delete the conversation.
        conversation->EndConversationAsync().get(); // You will not be able to rejoin after this
        conversation->DeleteConversationAsync().get(); // All participants still in the room will be ejected
    }
    
    int main()
    {
        // Register a handler for the Ctrl - C callback
        SetConsoleCtrlHandler(
            [](DWORD dwCtrlType) -> BOOL
            {
                if (dwCtrlType == CTRL_C_EVENT)
                {
                    // Signal that the user has pressed ctrl + C
                    promise.set_value(true);
                    return TRUE;
                }
    
                return FALSE;
            },
            TRUE);
    
        StartNewConversation();
    }
    
  3. Ugyanabban a fájlban cserélje le a YourSubscriptionKey sztringet az előfizetői azonosítóra.

  4. Cserélje le a sztringet YourServiceRegion az előfizetéshez társított régióra .

  5. A menüsávon válassza az Összes fájl>mentése lehetőséget.

Új beszélgetés létrehozásához hozza létre és futtassa az alkalmazást

  1. A menüsávon válassza a Build Solution (Build solution)>lehetőséget az alkalmazás létrehozásához. A kód fordításának hiba nélkül végbe kell mennie.

  2. Válassza a Hibakeresés indítása hibakeresés>lehetőséget (vagy nyomja le az F5 billentyűt) a helloworld alkalmazás elindításához.

  3. Amint megjelenik az Started transcribing üzenet, elkezdhet beszélni. A beszéd során megjelennek az átiratok

    • Ha megosztja a beszélgetés kódját a többiekkel, és csatlakoznak a beszélgetéshez, az átirataikat is látni fogja.
  4. Ha végzett a beszédtel, nyomja le a Ctrl+C billentyűkombinációt a hangrögzítés leállításához.

    Feljegyzés

    A Visual Studio üzenete a következőhöz hasonló kivételről jelenhet meg: Exception thrown at 0x76EB90BF (KernelBase.dll) in helloworld.exe: 0x40010005: Control-C. Ezt nyugodtan figyelmen kívül hagyhatja.

    A folytatáshoz nyomja le az F5 billentyűt.

Az alkalmazás létrehozása és futtatása meglévő beszélgetéshez való csatlakozáshoz

  1. Másolja és illessze be a következő függvényt a helloworld.cpp a int main() függvény előtt:

    void JoinExistingConversation(const std::string& conversationId)
    {
        std::string speechLanguage("en-US");
    
        // You'll now need to create a ConversationTranslator to send audio, send IMs, and receive conversation events
        auto audioConfig = AudioConfig::FromDefaultMicrophoneInput();
        auto conversationTranslator = ConversationTranslator::FromConfig(audioConfig);
    
        // Attach event handlers here. For example:
        conversationTranslator->Transcribing += [](const ConversationTranslationEventArgs& args)
        {
            std::cout << "Received a partial transcription from " << args.Result->ParticipantId << ": " << args.Result->Text << std::endl;
            for (const auto& entry : args.Result->Translations)
            {
                std::cout << "\t" << entry.first << ": " << entry.second << std::endl;
            }
        };
        conversationTranslator->Transcribed += [](const ConversationTranslationEventArgs& args)
        {
            std::cout << "Received a transcription from " << args.Result->ParticipantId << ": " << args.Result->Text << std::endl;
            for (const auto& entry : args.Result->Translations)
            {
                std::cout << "\t" << entry.first << ": " << entry.second << std::endl;
            }
        };
        conversationTranslator->TextMessageReceived += [](const ConversationTranslationEventArgs& args)
        {
            std::cout << "Received an instant message from " << args.Result->ParticipantId << ": " << args.Result->Text << std::endl;
            for (const auto& entry : args.Result->Translations)
            {
                std::cout << "\t" << entry.first << ": " << entry.second << std::endl;
            }
        };
    
        // Join the conversation
        conversationTranslator->JoinConversationAsync(conversationId, "participant", speechLanguage).get();
    
        // Start sending audio
        conversationTranslator->StartTranscribingAsync().get();
        std::cout << "Started transcribing. Press Ctrl + C to stop" << std::endl;
        future.get(); // wait for Ctrl - C to be pressed
    
        // Stop audio capture
        conversationTranslator->StopTranscribingAsync().get();
    
        // Once you are done, leave the conversation
        conversationTranslator->LeaveConversationAsync().get();
    }
    
  2. Cserélje le StartNewConversation(); a függvényben a int main() következőre:

    // Set this to the conversation you want to join
    JoinExistingConversation("YourConversationId");
    
  1. Létre kell hoznia egy beszélgetést, amelyhez csatlakozhat:

    1. Indítsa el a böngészőt, és lépjen a következőre: https://translator.microsoft.com.
    2. Válassza a "Beszélgetés indítása" lehetőséget.
    3. Jelentkezzen be a rendelkezésre álló lehetőségek bármelyikével.
    4. Írjon be egy nevet (például a gazdagépet).
    5. Válasszon ki egy nyelvet (pl. angol).
    6. Válassza az Enter gombot.
    7. Jegyezze fel a lap tetején található beszélgetési kódot.

    Tipp.

    Ha a weblap másolás gombját használja, először távolítsa el a translate.it/ gombot. Csak az 5 karakteres beszélgetésazonosítóra van szüksége (például: ABCDE).

  1. Térjen vissza a Visual Studióba, és cserélje le YourConversationId a int main() függvényt az előző lépésben szereplő beszélgetési azonosítóra.

  2. A menüsávon válassza a Build Solution (Build solution)>lehetőséget az alkalmazás létrehozásához. A kód fordításának hiba nélkül kell végbe mennie.

  3. Válassza a Hibakeresés indítása hibakeresés>lehetőséget (vagy nyomja le az F5 billentyűt) a helloworld alkalmazás elindításához.

  4. Amint megjelenik az Started transcribing üzenet, elkezdhet beszélni. A beszéd során megjelennek az átiratok.

    • Ha visszalép a böngészőbe, akkor az átiratok a beszéd közben is megjelennek.
  5. Miután befejezte a beszélgetést, nyomja le a Ctrl+C billentyűkombinációt a hangrögzítés leállításához, majd a beszélgetés befejezéséhez.

    Feljegyzés

    A Visual Studio üzenete a következőhöz hasonló kivételről jelenhet meg: Exception thrown at 0x76EB90BF (KernelBase.dll) in helloworld.exe: 0x40010005: Control-C. Ezt nyugodtan figyelmen kívül hagyhatja.

    A folytatáshoz nyomja le az F5 billentyűt.

  6. Lépjen vissza a böngészőbe, és lépjen ki a beszélgetésből a jobb felső sarokban található kilépési gombbal.

Következő lépések