Bir C++ uygulaması içinden C işlev adlarını bir geliştirme ortamında (Keil uVision) görünmesi gerekir. Maalesef görüntülenen isimler hala C++ ad mangling kullanıyor. Dolayısıyla, Task1
görüntüleniyorsa, sistem _Z5Task1Pv
görüntüler. CC++ içinde C adlarını kullanma
++ bir C++ uygulamasında saf C adlarını almak için ben
extern "C" {
...
typedef void (*TaskFct)(void*);
...
static void Task1(void* param) { ... }
...
static TaskFct getTaskID(TaskFct tFunc) {
...
return Task1;
}
}
sahip bir C dosyasında
{
...
threadDef->pthread = (void (*)(void const*))getTaskID(tfunc);
...
threadId = osThreadCreate(threadDef, param);
}
sonra mümkün mü diyoruz?
Ben sürücü işlevleri çağırmak istediğiniz her
cpp
sınıfının en azından ben Sonracpp
uygulamaları derlemek zorunda Bu nedir? (\ *) '? –Bir C dosyasında extern "C" 'varsa, çok yanlış bir şey yapıyorsunuz demektir. – hvd
@EdHeal OP'nin, Markdown'da kalın bir metin oluşturulmasını önlemek için kullanılabileceğini ve ancak kaçmanın artık gerekli olmadığı bir kod olarak gösterilmesini sağlamak için bunu girintili olduğunu fark ettiğini tahmin edeceğim. – hvd