Я изо всех сил пытался написать решение, существующее вне c32 win32console и c ++ dll. Мне, наконец, удалось заставить их говорить без ошибок компоновщика (поэтому я предполагаю, что оба полностью управляемые проекты c ++ / CLI), но когда я запускаю консоль, я получаю следующую ошибку.
Необработанное исключение в 0x03f71849 в
Company.Pins.Bank.Win32Console.exe:
0xC0000005: Запись о нарушении доступа
местоположение 0x00000001.
Консоль также показывает следующее
Необработанное исключение:
System.NullReferenceException: объект
ссылка не установлена на экземпляр
объект. в wmain в c: ... \ win32console.cpp: line
20 в _wmainCRTStartup ()
но я предполагаю, что это из-за необработанного исключения.
отслеживая эту ошибку, также как и я, ошибка возникает при выполнении возврата в приведенном ниже блоке кода. (метод, связанный с возвратом, кажется, проходит нормально, просто при возврате он кажется плохим.) На случай, если вы не заметили, я сам не писал нижеприведенный код, он был сгенерирован Visual Studio .
#ifdef WPRFLAG
int wmainCRTStartup(
#else /* WPRFLAG */
int mainCRTStartup(
#endif /* WPRFLAG */
#endif /* _WINMAIN_ */
void
)
{
/*
* The /GS security cookie must be initialized before any exception
* handling targetting the current image is registered. No function
* using exception handling can be called in the current image until
* after __security_init_cookie has been called.
*/
__security_init_cookie();
return __tmainCRTStartup();
}
#include "stdafx.h"
#include "UInstruction.h"
#define DllExport __declspec(dllexport)
#define DllImport __declspec(dllimport)
using namespace System;
edit: и код win32console.cpp ниже.
//int main(array<System::String ^> ^args)
int _tmain(int argc, _TCHAR* argv[])
{
auto P2 = (TCHAR *)"3 Barrowstead";
TCHAR* P3 = (TCHAR *)"3 Barrowstead";
double* P1;
P1[0] = 13;
UserInstruction(P1, P2, P3);
}