小编Mr *_*ris的帖子

"..必须从MonoDevelop和MVC3(OS X)上的WebViewPage或WebViewPage <TModel>派生"

我正在尝试使用MonoDevelop进行MVC 3 Razor项目.

我使用Mono 2.10.9/MonoDevelop 3.0.4.7创建了一个新的ASP.net MVC 2项目,并将以下DLL从现有的基于Windows的MVC3项目复制到Mono项目的"bin"目录:

System.Web.Helpers.dll
System.Web.Razor.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll
Run Code Online (Sandbox Code Playgroud)

已将项目设置为使用Mono/.NET 4.默认的索引文件已被删除并替换为Index.cshtml文件.当我执行项目时,我得到以下错误:

The view at '~/Views/Home/Index.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我之前已经完成了这个过程并且使MVC 3页面正常工作.它只是升级Mono(它声称支持Razor ......?),它现在已经不再适合我了.我之前用MVC3创建的项目似乎都在新的Mono版本中编译和运行.

非常感谢,如果有人能指出我可以在这些树林中找到一些木头:)

macos mono monodevelop asp.net-mvc-3

15
推荐指数
2
解决办法
3万
查看次数

const char*to vector <unsigned char> initalisation

我知道使用vector是一种在使用C++和STL时存储二进制数据的好方法.但是对于我的单元测试,我想使用const char*C字符串变量来初始化向量.

我正在尝试使用此处找到的代码变体 - 将(void*)转换为std :: vector <unsigned char> - 执行此操作:

const char* testdata = "the quick brown fox jumps over the lazy dog.";

unsigned char* buffer = (unsigned char*)testdata;
typedef vector<unsigned char> bufferType;

bufferType::size_type size = strlen((const char*)buffer);
bufferType vec(buffer, size);
Run Code Online (Sandbox Code Playgroud)

但是VC++编译器对初始化向量的行不满意,说明:

error C2664: 'std::vector<_Ty>::vector(unsigned int,const _Ty &)' : cannot convert parameter 1 from 'char *' to 'unsigned int'
Run Code Online (Sandbox Code Playgroud)

我很欣赏这个问题的极端性,我已经为上面代码的批评做了充分的准备:)

谢谢,克里斯

c++ initialization vector char visual-c++

9
推荐指数
1
解决办法
2万
查看次数

C++函数返回const char*

我为单元测试类开发了一个小辅助函数,它将我的vector<unsigned char>并将其转换回一个const char *.我写了这个,所以我可以将它传递给gtest的ASSERT_STREQ宏进行简单的比较.这里是:

const char * convertVecToChar(std::vector<unsigned char>& source)
{
    std::vector<unsigned char>::size_type size = source.size();
    char* data = (char*)malloc(sizeof(char) * (size + 1)); 
    memcpy(data, &source[0], size);
    data[size] = 0;
    return data;
}
Run Code Online (Sandbox Code Playgroud)

这是一个被称为的例子:

ASSERT_STREQ("de", convertVecToChar(somevector));
Run Code Online (Sandbox Code Playgroud)

我认为这是在我打电话时漏水malloc,但是没有delete进一步打电话的话?

有没有更优雅的方法来执行此操作,这不涉及const char *每次ASSERT_STREQ在测试方法中调用时创建单独的变量?

非常感谢所有回复.

克里斯

c++ string malloc pointers const

5
推荐指数
1
解决办法
4878
查看次数